Expressions regulieres sous PHP

ouss747 Messages postés 109 Date d'inscription   Statut Membre Dernière intervention   -  
ouss747 Messages postés 109 Date d'inscription   Statut Membre Dernière intervention   -
bonjour

je cherche à extraire une chaine de caractères inclue dans une autre chaine pour cela j'utilise la fonction preg_match_all qui semble donner de bon résultats, cependant cette fonction utilise un motif exprimé avec les expressions régulières pour extraire la chaine

mon probleme est que je n'arrive pas à trouver ce motif pour le cas suivant:

dans cet exemple j'ai ma chaine :
.R
text text text text
text text text text
.G
je souhaite extraire la chaine "text text text text ...." avec les saut de lignes

j'ai utilise ce motif mais ca donne pas de bon resultat:

$motif=''^(\.R)\s.+(\.G)$'';

quel est le motif qu'on doit utilise?

Merci d'avance.
A voir également:

2 réponses

elli32713 Messages postés 81 Date d'inscription   Statut Membre Dernière intervention   29
 
Bonjour,
Tu fais de multiples erreurs..
Déjà, si tu utilise une fonction qui commence par "preg_", c'est que tu utilises PCRE et non pas POSIX, d'où l'utilité de délimiteurs (des #, par exemple).
Ensuite, les parenthèses (ici, capturantes) ne sont pas bien placées : elles doivent entourer ce qui doit être récupéré, en l'occurence les "text text...".
Enfin, il y a des retours à la ligne dans ton texte, ils doivent aussi être récupérés.

J'en arrive finalement à la regex suivante :
$motif = "#^\.R(.+)\.G$#s";
4
ouss747 Messages postés 109 Date d'inscription   Statut Membre Dernière intervention   13
 
merci pour votre réponse je vais essayé et je vous contacterai dès que j'aurai les resultats
0
ouss747 Messages postés 109 Date d'inscription   Statut Membre Dernière intervention   13
 
salut, j'ai essayé et ca ne marche pas, le "s" que tu as mis a la fin veut dire quoi!?
autres solutions?
0
elli32713 Messages postés 81 Date d'inscription   Statut Membre Dernière intervention   29
 
Bonjour,
Le "s" est une option, elle permet que la classe universelle (le point) prenne aussi en compte les sauts de ligne.
Sinon, tu peux aussi essayer avec le fonction preg_match.
Sinon, je n'ai pas d'autres idées.
2
ouss747 Messages postés 109 Date d'inscription   Statut Membre Dernière intervention   13
 
ok, merci bcp
0