Demande d'aide pour une expression régulière [Résolu]

Signaler
Messages postés
55
Date d'inscription
vendredi 7 septembre 2007
Statut
Membre
Dernière intervention
16 mai 2013
-
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
-
Bonjour à tous !

J'ai le code suivant :

$n =   "\n";
echo '

'.eregi_replace('<li>[ \n]*<', '<li><', '<li> '.$n.' ');
echo '

'.eregi_replace('<li>[ \n]*<', '<li><', "<li> ".$n." ");


J'ai tout essayé : rien à faire, je n'y arrive pas.

Je cherche à remplacer ce qui se trouve entre <li> et , sachant que, comme vous pouvez le constater, il n'y a que des espaces ou des LINEFEED entre les deux.

Le pattern, selon la documentation des expressions régulières, est correct. Et cela ne marche pas ! Ou est l'erreur ?

Attention, pour votre réponse vous ne devez modifier que le pattern, RIEN D'AUTRE ! En particulier, il ne faut surtout pas changer :

$n   = "\n";

en
$n = '\n';


Par avance merci !

BlueMan.

3 réponses

Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Salut,

Un truc comme ça devrait convenir :
<?php
$n = "\n";
echo preg_replace('`(<li>)\s+()`s', '${1}${2}', '<li> '.$n.' ');
?>


Mais il y a sans doute mieux, pour cela il faudrait en connaitre plus sur la chaîne elle même.
Oublie l'utilisation des fonctions ereg*, elles sont dépréciées (utilise les PCRE)


Cordialement,


Kohntark -
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Mais je ne trouve pas de version de preg_replace qui soit insensible à la casse.


Il faut pour cela utiliser l'option i :

<?php
$n = "\n";
echo preg_replace('`(<li>)\s+()`si', '${1}${2}', '<li> '.$n.' ');
?>


Cordialement,

Kohntark -
Messages postés
55
Date d'inscription
vendredi 7 septembre 2007
Statut
Membre
Dernière intervention
16 mai 2013

Merci !

Ca marche nickel !

Mais je ne trouve pas de version de preg_replace qui soit insensible à la casse.

Encore merci de ton aide !

Cordialement,

BlueMan.