Types de quantificateurs
Quantificateur gourmand
On a vu les quantificateurs au début du chapitre. Ils permettent de spécifier un nombre d'occurences d'un sous-motif. Ces quantificateurs sont dit gourmand (greedy en anglais), c'est-à-dire qu'ils vont essayez de capturer des occurences les plus longues possible. Prenons un exemple pour mieux comprendre, soit la balise ouvrante d'un lien en HTML dont voici quelques exemples :
<a href="http://www.google.be" rel="popup" class="extlink"> <a target="_blank" href="http://www.yahoo.be" class="extlink" rel="popup"> <a href="http://www.alltheweb.com">
Comme vous le voyez, la chaine commence toujours par <a
et puis il y a éventuellement des caractères, ensuite on a la partie qui nous intéresse qui commence par href="
et se termine par "
et enfin, il y a encore éventuellement des caractères et la chaine se termine par >
.
Faisons une première tentative de description du motif qui nous permettra d'extraire l'information voulue :
<a(?:.*)href="(.*)"(?:.*)>
Vous remarquerez les groupes non-capturant, ils sont là uniquement pour rendre le motif plus clair. Que se passe-t'il si on applique ce motif sur les deux chaines d'exemple ? Voici le programme qui va tester tout ça ainsi que le résultat. N'oubliez pas de backslasher les guillemets !