Ancres

Les ancres vous permettent de résoudre une expression régulière au début d'une ligne ou à la fin d'une chaîne. Elles permettent également de créer des expressions qui correspondent au début, à la fin ou à l'intérieur d'un mot.

Par exemple, dans l'expression er\b, \b correspond à la limite d'un mot. L'expression correspond au "er" de "manger", mais pas au "er" de "mangera".

Fonctionnement des ancres

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 le caractère m (recherche sur plusieurs lignes) est inclus avec les indicateurs, ^ correspond également à la position qui suit \n ou \r.

$

Correspond à la position à la fin de la chaîne d'entrée. Si le caractère m (recherche multiligne) est inclus avec les indicateurs, $ correspond également à la position qui précède \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