Page 1 sur 1

Expression réguliere - preg_match_all

Posté : 19 oct. 2011, 22:18
par arh
Salut à tous,
J'ai besoin d'une petite aide.
Je veux extraire les mots "Jony", "Smith" et "[email protected]" de cette ligne:
text^name1^Jony~text^secondname1^Smith~text^email1^[email protected]~
J'ai fait comme ça: preg_match_all ('/\^(.*?)\~/', $row['form'], $res);

Et j'obtiens ça pour le prénom: ^name1^Jony~
pour le nom: ^secondname1^Smith~
etc.

Il n'y a que le mot "text" qui disparait. Pourriez-vous me dire ce qui ne vas pas dans mon expression régulière?

Merci beaucoup

Re: Expression réguliere - preg_match_all

Posté : 20 oct. 2011, 06:36
par soycd
Sachant que les éléments à extraire se situe entre ^ et ~, ton expression devrait donc être de la forme

Code : Tout sélectionner

#([^\^]+)~#
Ou encore avec une assertion positive

Code : Tout sélectionner

#[^\^]+(?=~)#