Trouver les mots entre une chaine de caractere

Nouveau WRInaute
Bonjour,

J'ai un petit probleme pour trouver les mots situer entre une chaine de caractère.

Code:
$msg="pour que votre commentaire soit valider votre commentaire";

if(eregi("pour(.*)commentaire",$msg,$regs)){
echo $regs[1];
}

J'ai le résultat suivant
que votre commentaire soit valider votre
Ca me renvoi la chaine entre le 1ier et pour et le dernier commentaire mais moi je veux avoir le résultat suivant
Entre le 1ier pour et le 1iercommentaire .

Est-ce que vous avez une idée ?


Merci
 
WRInaute accro
Utilise preg_match et consorts.

Ensuite tu pourras utiliser ? après * pour le rendre "non-greedy":
Code:
'#pour(.*?)commentaire#'

Alternativement, tu peux utiliser le flag U:
Code:
'#pour(.*)commentaire#U'

ou encore localement:
Code:
'#pour((?U).*)commentaire#'

Jacques.
 
Nouveau WRInaute
jcaron a dit:
Utilise preg_match et consorts.

Ensuite tu pourras utiliser ? après * pour le rendre "non-greedy":
Code:
'#pour(.*?)commentaire#'

Alternativement, tu peux utiliser le flag U:
Code:
'#pour(.*)commentaire#U'

ou encore localement:
Code:
'#pour((?U).*)commentaire#'

Jacques.


Merci c'est parfait...

Voici le code a présent
Code:
$msg="pour que votre commentaire soit valider votre commentaire";

if(preg_match("#pour(.*?)commentaire#",$msg,$regs)){
echo $regs[1];
}
 
Discussions similaires
Haut