US

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 !