|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Invité de passage
![]() Inscription : février 2007 Messages : 4 ![]() |
Bonsoir tout le monde
J'ai une petite colle pour vous, amis balaises en expressions régulières... Nous avons un texte de cette forme : "$var1.var2" ou encore "$var1.var2.var3.var4" enfin le nombre de varN n'a pas de limite supérieure en théorie (mais au minimum il est de 1) Je recherche donc le masque de regexp qui me retournera un tableau : Code :
Code :
Je me retrouve donc avec un tableau : Code :
Oui mais non ! Par souci purement scientifique je veux savoir comment on peut le faire en Regexp ! J'ai essayé de m'intéresser aux sous-masques récursifs mais j'avoue que la doc PHP est plutôt obscure sur ce point. C'est pourquoi je fais appel à vos dons de programmeurs pour résoudre ce problème par défi. Merci beaucoup d'avance |
||||||
|
|
00
|
|
|
#2 |
|
Membre chevronné
![]() Étudiant Inscription : août 2005 Messages : 632 ![]() |
?
|
|
|
00
|
|
|
#3 |
|
Membre chevronné
![]() Inscription : juillet 2002 Messages : 842 ![]() |
En fait les masques récursifs ne permettent pas ça. Voilà un exemple de masque récursif :
Code :
preg_match('#[a-zA-Z0-9_]+(?>\.(?R)|)#', '$var1.var2.var3.var4', $matches); Elles ne changent rien au problème parce que de toute façon, $matches n'aura toujours que la dernière valeur capturée par une parenthèse. En principe, la solution, c'est d'utiliser preg_match_all avec l'expression régulière de Korko Fain. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com