Langage d’expression régulière référence rapide
Les entités regex utilisent une approche déterministe pour faire correspondre les valeurs via des expressions regex.
Une expression régulière est un modèle que le moteur d'expression régulière tente de faire correspondre dans le texte d'entrée. Un modèle se compose d'un ou plusieurs caractères littéraux, opérateurs ou constructions. Les expressions régulières peuvent contenir à la fois des caractères spéciaux et ordinaires. La plupart des caractères ordinaires, comme « A », « a » ou « 0 », sont les expressions régulières les plus simples ; ils se correspondent tout simplement. Vous pouvez concaténer des caractères ordinaires, donc last correspond à la chaîne 'last'.
Certains caractères, comme '|' ou '(', sont spéciaux. Les caractères spéciaux représentent des classes de caractères ordinaires ou affectent la façon dont les expressions régulières qui les entourent sont interprétées.
Chaque section de cette référence rapide répertorie une catégorie particulière de caractères, d'opérateurs et de constructions que vous pouvez utiliser pour définir des expressions régulières.
Fonctionnalités regex prises en charge
Les sections suivantes décrivent les fonctionnalités regex prises en charge.
Le caractère barre oblique inverse (\) dans une expression régulière indique que le caractère qui le suit est soit un caractère spécial (comme indiqué dans le tableau suivant), soit doit être interprété littéralement.
Personnage échappé | Description | Modèle | Correspondances |
---|---|---|---|
\une | Correspond à un caractère de cloche, \u0007 | \une | "\u0007" dans "Erreur !" + '\u0007' |
\b | Dans une classe de caractères, correspond à un retour arrière, \u0008 | [\b]{3,} | "\b\b\b\b" dans "\b\b\b\b" |
\t |
Correspond à un onglet, \u0009. |
(\w+)\t | "item1\t", "item2\t" dans "item1\titre2\t" |
\r |
Correspond à un retour chariot, \u000D. (\r n'est pas équivalent au caractère de nouvelle ligne, \n.) |
\r\n(\w+) |
"\r\nCes" dans "\r\nCe sont\ndeux lignes." |
\v |
Correspond à un onglet vertical, \u000B. |
[\v]{2,} |
"\v\v\v" dans "\v\v\v" |
\F |
Correspond à un flux de formulaire, \u000C. |
[\f]{2,} |
"\f\f\f" dans "\f\f\f" |
\n |
Correspond à une nouvelle ligne, \u000A. |
\r\n(\w+) |
"\r\nCes" dans "\r\nCe sont\ndeux lignes." |
\ nnn |
Utilise la représentation octale pour spécifier un caractère (nnn se compose de deux ou trois chiffres). |
\w\040\w |
"ab", "cd" dans "a bc d" |
\X nn |
Utilise une représentation hexadécimale pour spécifier un caractère (nn est composé d'exactement deux chiffres). |
\w\x20\w |
"ab", "cd" dans "a bc d" |
\u nnnn |
Correspond à un caractère Unicode en utilisant une représentation hexadécimale (exactement quatre chiffres, comme représenté par nnnn). |
\w\u0020\w |
"ab", "cd" dans "a bc d" |
\ |
Lorsqu'il est suivi d'un caractère qui n'est pas reconnu comme caractère d'échappement dans ce tableau et dans d'autres tableaux de cette rubrique, correspond à ce caractère. Par exemple, \* est identique à \x2A et \. est le même que \x2E. Cela permet au moteur d'expressions régulières de lever l'ambiguïté des éléments de langage (tels que * ou ?) et des caractères littéraux (représentés par \* ou \?). |
\d+[\+-x\*]\d+ |
"2+2" et "3*9" dans "(2+2) * 3*9" |
Une classe de caractères correspond à l'un quelconque d'un ensemble de caractères. Les classes de caractères incluent les éléments de langage répertoriés dans le tableau suivant.
Classe de personnage | Description | Modèle | Correspondances |
---|---|---|---|
[ groupe_de_caractères ] |
Correspond à n'importe quel caractère dans groupe_de_caractères |
[ae] |
"a" dans "gris" |
[^ groupe_de_caractères ] |
Négation: Correspond à tout caractère unique qui n'est pas dans groupe_de_caractères. Par défaut, les caractères de groupe_de_caractères Sont sensibles à la casse. |
[^aei] |
« r », « g », « n » dans « règne » |
[ premier – dernier ] |
Plage de caractères : Correspond à n'importe quel caractère dans la plage de premier à dernier. |
[A à Z] |
"A", "B" dans "AB123" |
. |
Caractère générique : Correspond à n'importe quel caractère sauf \n. |
ae |
"ave" dans "nef" |
\w |
Correspond à n'importe quel caractère de mot. |
\w |
« I », « D », « A », « 1 », « 3 » dans « ID A1.3 » |
\W |
Correspond à tout caractère autre qu'un mot. |
\W |
" ", "." dans « ID A1.3 » |
\s |
Correspond à n'importe quel caractère d'espace blanc. |
\w\s |
« D » dans « ID A1.3 » |
\S |
Correspond à tout caractère autre qu'un espace blanc. |
\s\S |
" _ " dans " int __ctr " |
\ré |
Correspond à n'importe quel chiffre décimal. |
\ré |
« 4 » dans « 4 = IV » |
\RÉ |
Correspond à tout caractère autre qu'un chiffre décimal. |
\RÉ |
" ", "=", " ", " I ", " V " dans " 4 = IV " |
Les ancres, ou assertions atomiques de largeur zéro, entraînent la réussite ou l'échec d'une correspondance en fonction de la position actuelle dans la chaîne, mais elles ne font pas avancer le moteur dans la chaîne ou consomment des caractères. Les métacaractères répertoriés dans le tableau suivant sont des ancres.
Assertions | Description | Modèle | Correspondances |
---|---|---|---|
^ |
Par défaut, la correspondance doit commencer au début de la chaîne ; en mode multiligne, il doit commencer au début de la ligne. |
^\d{3} |
« 901 » dans « 901-333- » |
$ |
Par défaut, la correspondance doit se produire à la fin de la chaîne ou avant \n à la fin de la chaîne ; en mode multiligne, il doit se produire avant la fin de la ligne ou avant \n à la fin de la ligne. |
-\ré{3}$ |
"-333" dans "-901-333" |
\UNE |
La correspondance doit se produire au début de la chaîne. |
\Un d{3} |
« 901 » dans « 901-333- » |
\Z |
La correspondance doit se produire à la fin de la chaîne ou avant \n à la fin de la chaîne. |
-\ré{3}\Z |
"-333" dans "-901-333" |
\z |
La correspondance doit se produire à la fin de la chaîne. |
-\ré{3}\z |
"-333" dans "-901-333" |
\b |
La correspondance doit se produire sur une limite entre un caractère \w (alphanumérique) et un caractère \W (non alphanumérique). |
\b\w+\s\w+\b |
"leur thème", "eux eux" dans "leur thème eux eux" |
\B |
La correspondance ne doit pas se produire sur une limite \b. |
\Courbe\w*\b |
« endure », « ender » dans « end envoie endurer le prêteur » |
Les constructions de regroupement délimitent les sous-expressions d'une expression régulière et capturent généralement les sous-chaînes d'une chaîne d'entrée. Les constructions de regroupement incluent les éléments de langage répertoriés dans le tableau suivant. Seuls les groupes sans capture sont pris en charge.
Contraintes de regroupement | Description | Modèle | Correspondances |
---|---|---|---|
(?: Sous-expression : |
Définit un groupe sans capture. |
(?:[0-9]{4})|(?:[0-9] [0-9] [0-9] [0-9]) |
"1234" dans "le nombre est 1234" |
(?= sous-expression ) |
Assertion d'anticipation positive de largeur zéro. |
\w+(?=\.) |
"est", "a couru" et "out" dans "Il est. Le chien a couru. Le soleil est sorti." |
(?! sous-expression ) |
Assertion d'anticipation négative de largeur zéro. |
\b(?!un)\w+\b |
« sûr », « utilisé » dans « incertain sûr de l'unité utilisée » |
(?<= sous-expression ) |
Affirmation de lookbehind positive de largeur zéro. |
(?<=19)\d{2}\b |
"99", "50", "05" dans "1851 1999 1950 1905 2003" |
(?<! sous-expression ) |
Affirmation de lookbehind négative de largeur zéro. |
(?<!19)\d{2}\b<sajan index="1" /> |
"51", "03" dans "1851 1999 1950 1905 2003" |
Un quantificateur spécifie combien d'instances de l'élément précédent (qui peut être un caractère, un groupe ou une classe de caractères) doivent être présentes dans la chaîne d'entrée pour qu'une correspondance se produise. Les quantificateurs incluent les éléments de langage répertoriés dans le tableau suivant.
Quantificateur | Description | Modèle | Correspondances |
---|---|---|---|
* |
Correspond à l'élément précédent zéro ou plusieurs fois. |
\d*\.\d |
".0", "19,9", "219.9" |
+ |
Correspond à l'élément précédent une ou plusieurs fois. |
"être+" |
"abeille" dans "été", "être" dans "courbé" |
? |
Correspond à l'élément précédent zéro ou une fois. |
"pluie" |
"couru", "pluie" |
{ m } |
Correspond exactement à l'élément précédent m fois. |
",\ré{3}" |
",043" dans "1,043,6", ",876", ",543", et ",210" dans "9,876,543,210" |
{ m ,} |
Correspond au moins à l'élément précédent m fois. |
"\d{2,}" |
"166", "29", "1930" |
{ m , m } |
Correspond au moins à l'élément précédent m fois, mais pas plus de m fois. |
"\d{3,5}" |
"166", "17668" |
*?, +?, ?? |
Idem que pour *, + et ?, mais le moins de fois possible. |
<.*?> |
Les '*', '+', et '?' les qualificatifs sont tous cupide; ils correspondent à autant de texte que possible. Parfois, ce comportement n'est pas souhaité ; s'il y a <.*> est confronté à '<a> b <c>', il correspondra à la chaîne entière, et pas seulement '<a>'. Ajouter ? après que le qualifié a fait jouer le match dans non gourmand ou minimal mode; comme quelque caractères que possible seront mis en correspondance. Utiliser le RE <.*?> correspondra seulement '<a>'. |
{ m } ? |
Correspond exactement à l'élément précédent m fois. |
",\ré{3}?" |
",043" dans "1,043,6", ",876", ",543", et ",210" dans "9,876,543,210" |
{ m ,} ? |
Correspond au moins à l'élément précédent m fois, mais le moins de fois possible. |
"\d{2,} ?" |
"166", "29", "1930" |
{ m , m } ? |
Correspond à l'élément précédent entre m et m fois, mais le moins de fois possible. |
"\d{3,5} ?" |
"166", "17668" |
Les constructions d'alternance modifient une expression régulière pour permettre la correspondance. Ces constructions incluent les éléments de langage répertoriés dans le tableau suivant.
Quantificateur | Description | Modèle | Correspondances |
---|---|---|---|
| |
Correspond à n'importe quel élément séparé par le caractère barre verticale (|). |
e(?:e|est|à) |
« le », « ceci » dans « c'est le jour ». |