|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |
|
Invité de passage
![]() Inscription : mai 2009 Messages : 5 ![]() |
Salut à tous,
J'ai besoin d'une petite aide. Je veux extraire les mots "Jony", "Smith" et "example-free@wpdevelop.com" de cette ligne: Citation:
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 |
|
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() ![]() Sébastien AlfaiateDéveloppeur Web Inscription : janvier 2007 Messages : 1 329 ![]() |
Tu demandes à chercher une chaine comprise entre les caractères ^et ~.
Par défaut, la regex va chercher la plus grande chaîne possible qui correspond à cette recherche, ce qui est le cas pour ^name1^Jony~ Pour résoudre le problème, il suffit de dire que la chaîne que tu recherches ne doit pas contenir de ^ Code :
preg_match_all('/\^([^\^\.]*?)\~/', $row['form'], $res);
__________________
Zend Certified Engineer PHP 5.3 « Crois-tu comprendre le monde juste en matant le 20H Ou connaître l'histoire en ayant lu que l'angle des vainqueurs ? » Keny Arkana |
|
00
|
|
|
#3 |
![]() ![]() Développeuse PHP/Java Inscription : avril 2007 Messages : 3 664 ![]() |
Autre possibilité : utiliser le modificateur U (ungreedy) qui te retournera la plus petite expression possible.
Code :
preg_match_all ('/\^(.*?)\~/U', $row['form'], $res);
__________________
Modératrice PHP Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur) Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) |
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : septembre 2010 Messages : 7 186 ![]() |
ça sort d’où ta chaine ?
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#5 | ||
![]() ![]() Développeur Web Inscription : août 2006 Messages : 2 700 ![]() |
C'est vrai qu'on dirait qu'elle est construite spécialement pour complexifier une regex d'extraction...
Mais tu peux essayer ça : Code :
__________________
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com