Trouver les mots entre une chaine de caractere

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
 
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.
 
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];
}
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut