Création d'une expression régulière
Une expression régulière décrit une ou plusieurs chaînes pour lesquelles une correspondance doit être établie lorsque vous recherchez un corps de texte. L'expression régulière sert de modèle de caractères à comparer au texte recherché.
Les expressions régulières sont construites de manière très semblable aux expressions arithmétiques. De petites expressions sont combinées à l'aide de divers métacaractères pour en créer de plus grandes.
Les composants d'une expression régulière peuvent être des caractères individuels, des jeux de caractères, des plages de caractères ou des choix entre plusieurs caractères. Il peut également s'agir de toute combinaison de ces composants.
Construction d'une expression régulière
Vous construisez une expression régulière en entourant les différents composants de l'expression par une paire de séparateurs. En JScript, les délimiteurs sont une paire de barres obliques (/), comme indiqué dans l'exemple suivant.
/expression/
Exemples d'expressions régulières
Le tableau suivant contient des exemples d'expressions régulières classiques.
Expression régulière |
Description |
---|---|
/^\s*$/ |
Correspond à une ligne vide. |
/\d{2}-\d{5}/ |
Correspond à un numéro d'ID composé de deux chiffres, d'un trait d'union et de cinq chiffres supplémentaires. |
/<\s*(\S+)(\s[^>]*)?>[\s\S]*<\s*\/\1\s*>/ |
Correspond à une balise HTML. |
Caractères ordinaires
La forme la plus simple d'une expression régulière est un seul caractère ordinaire qui est comparé à une chaîne recherchée. Par exemple, l'expression régulière basée sur le caractère A correspond à la lettre A, partout où celle-ci apparaît dans la chaîne recherchée.
Voici quelques exemples d'expressions régulières à un seul caractère en JScript.
/a/
/7/
/M/
Vous pouvez combiner plusieurs caractères uniques pour former une expression plus longue. Par exemple, l'expression /the/ correspond à "the" dans les chaînes recherchées suivantes : "the", "there", "other" et "over the lazy dog".
Aucun opérateur de concaténation n'est nécessaire. Tout ce que vous devez faire, c'est placer un caractère à la suite d'un autre.
Métacaractères
Outre les caractères ordinaires, une expression régulière peut contenir des métacaractères. \d est un exemple de métacaractère, qui correspond à un chiffre.
Pour plus d'informations, consultez Syntaxe d'une expression régulière.
Les caractères ordinaires représentent tous les caractères imprimables et non imprimables qui ne sont pas explicitement désignés comme des métacaractères. Il s'agit de tous les caractères alphabétiques majuscules et minuscules, les chiffres, les signes de ponctuation et certains symboles.
Correspondance des caractères
Le point (.) correspond à n'importe quel caractère imprimable ou non d'une chaîne, à l'exception du caractère de saut de ligne (\n). L'expression régulière /a.c/ correspond à "aac", "abc", "acc", "adc", "a1c", "a2c", "a-c", et "a#c".
Pour correspondre à un point (.) contenu dans la chaîne recherchée, vous pouvez faire précéder le point par une barre oblique inverse (\) dans l'expression. L'expression /filename\.ext/ correspond à "filename.ext".
Listes de caractères correspondants
Vous pouvez créer une liste de caractères correspondants en plaçant un ou plusieurs caractères individuels entre crochets [ ].
Tout caractère placé dans une expression entre crochets correspond à un seul caractère situé à la position où apparaît l'expression entre crochets dans l'expression régulière. Par exemple, l'expression /Chapter [12345]/ correspond à "Chapter 1", "Chapter 2", "Chapter 3", "Chapter 4" et "Chapter 5".
Pour exprimer des caractères correspondants à l'aide d'une plage plutôt que des caractères eux-mêmes, utilisez le tiret (-). L'expression /Chapter [1-5]/ est équivalente à /Chapter [12345]/.
Vous pouvez rechercher tous les caractères qui ne figurent pas dans la liste ou la plage en incluant le signe insertion (^) au début de la liste. Par exemple, l'expression /[^aAeEiIoOuU]/ correspond à tout caractère qui n'est pas une voyelle.
Pour plus d'informations, consultez Listes de caractères correspondants.
Quantificateurs
Vous pouvez utiliser des quantificateurs pour spécifier une expression régulière dans laquelle un caractère ou un jeu de caractères se répète un nombre spécifique de fois.
Un quantificateur fait référence à l'expression située immédiatement avant le (à gauche du) quantificateur.
Les quantificateurs sont placés entre accolades {} et comprennent des valeurs numériques pour indiquer les limites inférieure et supérieure des occurrences. Par exemple, c{1,2} correspond à 1 ou 2 occurrences de la lettre c.
Lorsqu'un seul nombre est spécifié, il est utilisé comme limite supérieure à moins qu'il ne soit suivi d'une virgule. Par exemple, c{3} correspond exactement à 3 occurrences de la lettre c, et c{5,} correspond à 5 occurrences ou plus de la lettre c.
Les quantificateurs à caractère unique sont également disponibles, comme indiqué dans le tableau suivant.
Quantifieur |
Quantificateur explicite |
Signification |
---|---|---|
* |
{0,} |
Correspond zéro, une ou plusieurs fois à l'élément précédent. |
+ |
{1,} |
Correspond une ou plusieurs fois à l'élément précédent. |
? |
{0,1} |
Correspond zéro ou une fois à l'élément précédent. |
Voici quelques exemples d'expressions avec les chaînes recherchées correspondantes.
Expression régulière |
Signification du quantificateur |
Correspondance |
---|---|---|
/Chapter [1-9][0-9]{0,}/ ou /Chapter [1-9][0-9]*/ |
Correspond zéro, une ou plusieurs fois à [0-9]. |
"Chapter 1", "Chapter 25", "Chapter 401320" |
/Chapter [0-9]{1,2}/ |
Correspond une ou deux fois à [0-9]. |
"Chapter 0", "Chapter 03", "Chapter 1", "Chapter 25", "Chapter 40" |
/Chapter [1-9][0-9]{0,1}/ ou /Chapter [1-9][0-9]?/ |
Correspond zéro ou une fois à [0-9]. |
"Chapter 1", "Chapter 25", "Chapter 40" |
Pour plus d'informations, consultez Quantificateurs dans JScript.
Limites des lignes et des mots
Les ancres vous permettent de spécifier qu'une expression régulière doit apparaître au début ou à la fin de la chaîne recherchée, ou au début ou à la fin d'une ligne ou d'un mot dans la chaîne recherchée, pour représenter une correspondance. Pour plus d'informations, consultez Ancres.
Spécification d'alternatives
Le caractère "|" spécifie que deux possibilités ou plus représentent une correspondance. Par exemple, en JScript, l'expression régulière /(Chapter|Section) [1-9]/ correspond à : "Chapter 1", "Chapter 9" et "Section 2". Pour plus d'informations, consultez Alternative et sous-expressions.
Utilisation de sous-correspondances
Dans une expression régulière, les parenthèses permettent de créer une sous-expression. La sous-correspondance résultante peut être récupérée par le programme. Pour plus d'informations, consultez Alternative et sous-expressions.
Vous pouvez faire référence à une sous-expression à partir d'une expression régulière et à partir d'une chaîne de remplacement. Pour plus d'informations, consultez Backreferences dans JScript.