Haa vraiment les regex.. un truc d'informaticien pour les informaticiens
Ce n'est pas mon premier regex, mais la je comprend pas :
je veux trouver le motif d'un entier OU les 3 lettres "abx"
donc :
si $subject= "44"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $pattern ='`(?i:[0-9]*)|(?i:abx)`'; $nb_found=preg_match($pattern, $subject, $matches,PREG_OFFSET_CAPTURE); print_r($matches);
Array ( [0] => Array ( [0] => 44 [1] => 0 ) )
c bon.
si $subject= "abx"
Array ( [0] => Array ( [0] => [1] => 0 ) )
c pas bon..
Me demandez pas pourquoi j'ai essayé ça (généralement on essaye beaucoup de chose avec les regex), mais dans l'expression j'interverti les 2 motifs (je place le motif abx en premier), mais je ne les modifient pas, ils sont identique aux précédents :
si $subject= "44"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $pattern ='`(?i:abx)|(?i:[0-9]*)`'; $nb_found=preg_match($pattern, $subject, $matches,PREG_OFFSET_CAPTURE); print_r($matches);
Array ( [0] => Array ( [0] => 44 [1] => 0 ) )
c bon.
si $subject= "abx"
Array ( [0] => Array ( [0] => abx [1] => 0 ) )
c bon.
Vous allez me dire "Ben donc ça marche, c'est quoi ton probleme ?".
J'aime bien comprendre ce que je code.. et je comprend pas pourquoi ça marche dans un cas et pas dans l'autre, alors que les motifs exprimés dans les deux cas sont exactement les mêmes.
Partager