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!
3 réponses
-
Hello,
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! -
Les expressions régulières permettent d'obtenir des résultats d'une complexité incroyable. Ton problème est certainement loin d'approcher leur limite.
Tu devrais donc exposer plus précisément ton problème, car là ça reste flou.
Il ne faut pas hésiter à donner des précisions