Problème d'expression régulière
Xidy
Messages postés
87
Statut
Membre
-
heyquem Messages postés 808 Statut Membre -
heyquem Messages postés 808 Statut Membre -
Bonjour,
Je cherche à résoudre un problème sans doute simple quand on s'y connait un peu dans les expressions régulière et c'est assez urgent pour moi donc toute aide est la bienvenue!.
Je cherche à pouvoir remplacer une chaine par vide entre 2 partie d'une chaine que je recupère.
Je fais donc (en PHP je précise)
$Texte = preg_replace("'<td id=.table_cell_(.*)\/td>'s","",$var);
Qui devrait me remplacer pour chaque fois que j'ai :
<td id="table_cell_(une chaine indéfinie...)/td> par vide dans $var
Mais bien sur ça ne marche pas^^ Merci!
Je cherche à résoudre un problème sans doute simple quand on s'y connait un peu dans les expressions régulière et c'est assez urgent pour moi donc toute aide est la bienvenue!.
Je cherche à pouvoir remplacer une chaine par vide entre 2 partie d'une chaine que je recupère.
Je fais donc (en PHP je précise)
$Texte = preg_replace("'<td id=.table_cell_(.*)\/td>'s","",$var);
Qui devrait me remplacer pour chaque fois que j'ai :
<td id="table_cell_(une chaine indéfinie...)/td> par vide dans $var
Mais bien sur ça ne marche pas^^ Merci!
A voir également:
- Problème d'expression régulière
- Expression écrite cm1 cm2 télécharger gratuit - Télécharger - Éducatifs
- Microsoft expression encoder - Télécharger - Divers Utilitaires
- Expression de recherche - Guide
- Avoir du ping expression ✓ - Forum jeux en ligne
- T'as du ping expression - Forum Réseau
3 réponses
Hello,
Je pense que ça devrait aller mieux en rendant non gourmand le point dans (.*) en mettant un ? après:
Sinon .* mange autant de caractères qu'il le peut avant de devoir s'arrêter devant le dernier motif /td> rencontré.
/ n'est pas un métacaractère, inutile de l'échapper.
Pourquoi mets tu un point pour attraper le " devant table_cell au lieu d'un " directement ?
NB: « ça ne marche pas »
ne renseigne pas sur le type d'erreur ou de mauvais résultat occasionné.
Je pense que ça devrait aller mieux en rendant non gourmand le point dans (.*) en mettant un ? après:
$Texte = preg_replace("'<td id=.table_cell_(.*)?/td>'s","",$var);
Sinon .* mange autant de caractères qu'il le peut avant de devoir s'arrêter devant le dernier motif /td> rencontré.
/ n'est pas un métacaractère, inutile de l'échapper.
Pourquoi mets tu un point pour attraper le " devant table_cell au lieu d'un " directement ?
NB: « ça ne marche pas »
ne renseigne pas sur le type d'erreur ou de mauvais résultat occasionné.
Je ne connais pas bien dutout les expressions régulières (ça se voit^^)
le " parce que sinon je dois l'echapper dans ma chaine php avec \" je ne sais pas si ça fausse l'espression?
Pour qu'il s'arrête au td> correspondant (s'il y en a d'autre à l'intérieur mais d'autres après) que puis-je faire? Est-ce seulement possible^^? Merci!
le " parce que sinon je dois l'echapper dans ma chaine php avec \" je ne sais pas si ça fausse l'espression?
Pour qu'il s'arrête au td> correspondant (s'il y en a d'autre à l'intérieur mais d'autres après) que puis-je faire? Est-ce seulement possible^^? Merci!