Partager via


Ancres

Mise à jour : novembre 2007

Les exemples présentés dans les rubriques précédentes de cette section concernaient uniquement la recherche de titres de chapitre. Toute occurrence de la chaîne Chapter suivie d'un espace et d'un numéro pourrait effectivement être un titre de chapitre, mais il pourrait également s'agir d'une référence croisée à un autre chapitre. Dans la mesure où les véritables titres de chapitre apparaissent toujours en début de ligne, il peut s'avérer utile de trouver un moyen de rechercher uniquement les titres et non les références croisées.

Fonctionnement des ancres

Les ancres offrent cette possibilité. Elles vous autorisent à ancrer une expression régulière au début ou à la fin d'une ligne. Elles vous permettent également de créer des expressions régulières qui apparaissent dans un mot, au début ou encore à la fin de celui-ci. Le tableau suivant contient la liste des ancres d'expression régulière et leur signification :

Caractère

Description

^

Correspond à la position au début de la chaîne d'entrée. Si la propriété Multiline de l'objet RegExp est définie, ^ correspond également à la position qui suit \n ou \r.

$

Correspond à la position à la fin de la chaîne d'entrée. Si la propriété Multiline de l'objet RegExp est définie, $ correspond également à la position précédant \n ou \r.

\b

Correspond à la limite d'un mot, c'est-à-dire à la position entre un mot et un espace.

\B

Correspond à une non-limite de mot.

Il n'est pas possible d'utiliser un quantificateur avec une ancre. Dans la mesure où vous ne pouvez pas avoir plusieurs positions immédiatement avant ou après un saut de ligne ou une limite de mot, des expressions telles que ^* ne sont pas autorisées.

Pour établir une correspondance de texte au début d'une ligne de texte, utilisez le caractère ^ au début d'une expression régulière. Ne confondez pas cette utilisation de ^ avec celle qui est employée dans une expression entre crochets.

Pour établir une correspondance de texte à la fin d'une ligne de texte, utilisez le caractère $ à la fin d'une expression régulière.

Pour utiliser les ancres lorsque vous recherchez des titres de chapitre, l'expression régulière suivante correspond à un titre de chapitre qui ne contient pas plus de deux chiffres consécutifs et figure au début d'une ligne :

/^Chapter [1-9][0-9]{0,1}/

En effet, un vrai titre de chapitre figure toujours en début de ligne et constitue en outre le seul texte de la ligne. Il apparaît au début de la ligne et se termine à la fin de la même ligne. L'expression suivante garantit que la correspondance spécifiée ne s'applique qu'aux chapitres et non aux références croisées. Pour cela, elle crée une expression régulière qui correspond uniquement au début et à la fin d'une ligne de texte.

/^Chapter [1-9][0-9]{0,1}$/

La mise en correspondance des limites de mot diffère quelque peu, mais ajoute une capacité importante aux expressions régulières. Une limite de mot est la position entre un mot et un espace. Une non-limite de mot constitue n'importe quelle autre position. L'expression suivante correspond aux trois premiers caractères du mot Chapter parce que les caractères apparaissent après une limite de mot :

/\bCha/

La position de l'opérateur \b est cruciale. S'il figure au début de la chaîne à mettre en correspondance, il recherche la correspondance au début du mot. S'il figure à la fin de la chaîne, il recherche la correspondance à la fin du mot. Dans l'exemple suivant, l'expression correspond à la chaîne ter du mot Chapter parce qu'elle apparaît avant une limite de mot :

/ter\b/

L'expression suivante correspond à la chaîne apt de Chapter, mais non à celle du mot aptitude :

/\Bapt/

La chaîne apt apparaît au niveau d'une non-limite de mot dans le mot Chapter alors qu'elle suit une limite de mot dans le cas de aptitude. Pour l'opérateur de non-limite de mot \B, la position n'a pas d'importance puisque la correspondance ne s'applique ni au début ni à la fin d'un mot.

Voir aussi

Autres ressources

Introduction aux expressions régulières