\n et regex

\n et regex - PHP - Programmation

Marsh Posté le 03-09-2008 à 12:29:04    

bojnour,
 
j'ai :

Code :
  1. $texte = le chat\nde jacque est \nmalade


 
je veux isoler ce qui se trouve entre \n
 
je fais :

Code :
  1. if( preg_match("#\n(.*)\n#",$texte) ) {
  2. echo $texte;
  3. }
  4. else {
  5. echo "pas de retour chariot détecté";
  6. }


 
j'ai constamment "pas de retour chariot détecté" !!!!
 
qu'ai je fais de mal ?

Reply

Marsh Posté le 03-09-2008 à 12:29:04   

Reply

Marsh Posté le 03-09-2008 à 12:34:31    

oui effectivement, mais l'idée était de modifier ce qui se trouve entre les \n uniquement d'ou la regex...

Reply

Marsh Posté le 03-09-2008 à 14:09:02    

il me semblait qu'il fallait placer l'expression régulière entre / (slash), non ?


---------------
Du tofu en Alsace : www.tofuhong.com
Reply

Marsh Posté le 03-09-2008 à 15:04:58    

le problème vient vraisemblablement de ton texte, est-il entre simple ou double quote?
Si tu as:

Code :
  1. $texte = 'le chat\nde jacque est \nmalade';


Ta regex ne doit pas chercher des retours à la ligne mais le caractère \ suivi du caractère n :

Code :
  1. if( preg_match("#\\n(.*)\\n#",$texte) ) {


Par contre si tu as déclarer ta chaine entre double quote il y aura bien un retour à la ligne et ta regex est bonne.

 

pierreC> il n'y a pas d'obligation sur le caractère délimitant une regex. Traditionnellement on se sert effectivement du / ( je dirais que ça doit venir de PERL) mais le # est tout à fait possible ( voir même recommandé quand on essaye de matcher des paths qui contiennent des / par exemple)


Message édité par anapajari le 03-09-2008 à 15:05:15

---------------
Software and cathedrals are much the same - first we build them, then we pray.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed