Problème d'expression régulière

Xidy Messages postés 87 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!

A voir également:

3 réponses

heyquem Messages postés 808 Statut Membre 131
 
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é.
2
Xidy Messages postés 87 Statut Membre 3
 
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!
0
heyquem Messages postés 808 Statut Membre 131
 
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
0