Bonjour,
Je travaille actuellement sur des expressions régulières sous androïd et la doc indique que le comportement par défaut est "greedy", ce qui signifie qu'elle va tenter de "matcher" la plus grande séquence possible. Or, d'après mes tests, il semblerait que ce soit l'inverse...
Par exemple, j'utilise la regex suivante :
"(.*[^0-9/])(?:le)?[ ]*(0?[1-9]|1[0-9]|2[0-9]|3[01])[/. ](0[1-9]|1[012])([^0-9/].*)"
Il s'agit de reconnaitre une date du type "[le ]26/05", "le " étant optionnel.
Que le "le " soit là ou pas, bien évidemment, ça "match"
Cependant, dès que je récupère le 1re groupe, si "le " il y a, il se trouvera dans le 1er groupe... Alors qu'il devrait en être exclu !
Comprenez bien que mon seul problème provient de la place du "le " dans un groupe et non du reste de l'expression ou de sa possible simplification (utilisation de \d, etc...)
Si vous avez une idée sur la question ?
Merci !
Partager