trouver un mot dans une phrase

Petit nouveau ! | 1 Messages

26 déc. 2010, 18:13

Bonjour je cherche comment faire pour par exemple trouver un mort se trouve entre deux autres. ce mot je ne le connait pas mais je connait en revanche les deux autres.

Par exemple

trouver quel que que soit le mot qui se trouve entre le mot "Maison" et "Fleurs"

Exemple :

"ma maison est pleines de fleurs."

le resultat a afficher doit être "est pleine de" puisque compris entre maison et fleurs.

Une solution ? merci à vous.

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

26 déc. 2010, 20:00

Bonjour, regarde du côté des expressions régulières
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

ViPHP
ViPHP | 5462 Messages

27 déc. 2010, 00:29

Bonjour, regarde du côté des expressions régulières
pas top le site y'a plein de trucs faux, et y'a pas ce dont il a besoin même si c'est un premier pas.

Invité
Invité n'ayant pas de compte PHPfrance

27 déc. 2010, 10:55

Merci, mais où pourrais je plutot trouver un exemple ?.

Invité
Invité n'ayant pas de compte PHPfrance

27 déc. 2010, 12:39

bon j'ai résolu mon soucis avec EXPLODE.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

27 déc. 2010, 13:00

C'est effectivement plus propre avec une expression régulière, il te suffit de définir le masque correspondant à la chaine que tu recherches. En l'occurrence la tienne serait assez simple :
$chaine = "ma maison est pleines de fleurs."
$masque = "/maison (.*) fleurs/i"; // capture tous les caractères qui se trouvent entre "maison " et " fleurs"
preg_match($masque, $chaine, $result); // applique le masque à la chaine et stocke le résultat dans le tableau $result

print_r($result); // affiche le tableau résultat, mais tu peux aussi récupérer directement la valeur qui t'intéresse, ex : $result[1]
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

ViPHP
ViPHP | 5462 Messages

27 déc. 2010, 20:12

C'est effectivement plus propre avec une expression régulière, il te suffit de définir le masque correspondant à la chaine que tu recherches. En l'occurrence la tienne serait assez simple :
$chaine = "ma maison est pleines de fleurs."
$masque = "/maison (.*) fleurs/i"; // capture tous les caractères qui se trouvent entre "maison " et " fleurs"
preg_match($masque, $chaine, $result); // applique le masque à la chaine et stocke le résultat dans le tableau $result

print_r($result); // affiche le tableau résultat, mais tu peux aussi récupérer directement la valeur qui t'intéresse, ex : $result[1]

si ta une phrase qui contient 2 fois fleurs il va tout prendre entre le premier maison et le 2eme fleurs :wink:

ViPHP
ViPHP | 4039 Messages

27 déc. 2010, 23:07

si ta une phrase qui contient 2 fois fleurs il va tout prendre entre le premier maison et le 2eme fleurs :wink:
Heureusement que nous savons tous les deux comment rendre l'expression non-avare. non ?
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

27 déc. 2010, 23:46

Et qu'est ce qui vous fait penser que ce n'est pas ce qu'il souhaite ? :P
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

ViPHP
ViPHP | 5462 Messages

28 déc. 2010, 00:30

si ta une phrase qui contient 2 fois fleurs il va tout prendre entre le premier maison et le 2eme fleurs :wink:
Heureusement que nous savons tous les deux comment rendre l'expression non-avare. non ?
Heureusement que oui sinon sans nous le monde serait perdu.

ViPHP
ViPHP | 5462 Messages

28 déc. 2010, 00:32

Et qu'est ce qui vous fait penser que ce n'est pas ce qu'il souhaite ? :P
simple supposition y'a des chance pour que ca soit le cas. :wink: