Une expression régulière est un modèle littéral composé de caractères ordinaires (tels que les caractères A à Z) et des caractères spéciaux (appelés métacharacteurs ). Ce modèle décrit une ou plusieurs cordes à faire correspondre lors de la recherche d'un corps de texte. L'expression régulière agit comme un modèle pour correspondre à un modèle de caractère avec la chaîne recherchée.
Voici quelques exemples d'expressions régulières que vous pourriez rencontrer:
| Jscript | Vbscript | correspondre |
|---|---|---|
| / ^ / [/ t] * $ / | ^ / [/ t] * $ | Faites correspondre une ligne vide. |
| // d {2} - / d {5} / | / d {2} - / d {5} | Vérifiez qu'un numéro d'identification se compose d'un numéro à 2 chiffres, d'un trait d'union et d'un numéro à 5 chiffres. |
| /<(.*)>.*<///1>/ | <(. *)>. * </// 1> | Faites correspondre une balise HTML. |
Le tableau suivant est une liste complète des métacharacteurs et leur comportement dans le contexte des expressions régulières:
| personnage | décrire |
|---|---|
| / / | Marquez le personnage suivant comme un caractère spécial, un caractère primitif, ou une référence arriérée, ou un caractère d'échappement octal. Par exemple, 'n' correspond au caractère n. '/ n' correspond à un personnage de Newline. La séquence '//' correspond / et / (correspond (. |
| ^ | Correspond à la position de 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 après '/ n' ou '/ r'. |
| $ | Correspond à la position finale de la chaîne d'entrée. Si la propriété multiline de l'objet Regexp est définie, $ correspond également à la position avant '/ n' ou '/ r'. |
| * | Correspond à la sous-expression précédente zéro ou plusieurs fois. Par exemple, ZO * peut correspondre à Z et Zoo. * équivaut à {0,}. |
| + | Correspond à la sous-expression précédente une fois ou plus. Par exemple, «ZO +» peut correspondre à ZO et ZOO, mais pas z. + équivaut à {1,}. |
| ? | Correspond à la sous-expression précédente zéro ou une fois. Par exemple, faire (es)? ? Équivalent à {0,1}. |
| { n } | n est un entier non négatif. Faites correspondre les n fois déterminés. Par exemple, 'o {2}' ne peut pas correspondre à "O 'dans Bob, mais peut correspondre à deux OS dans la nourriture. |
| { n ,} | n est un entier non négatif. Faites correspondre au moins n fois. Par exemple, 'o {2,}' ne peut pas correspondre à "O 'dans Bob, mais peut correspondre à tous les OS dans Foooood. 'o {1,}' équivaut à «o +». 'o {0,}' équivaut à «o *». |
| { n , m } | M et n sont des entiers non négatifs, où n <= m . Faites correspondre au moins n fois et assortiz jusqu'à M fois. Liu, o {1,3} correspondra aux trois premiers OS à Fooooood. 'o {0,1}' équivaut à «o?». Veuillez noter qu'il ne peut pas y avoir d'espaces entre les virgules et deux nombres. |
| ? | Le modèle d'appariement est non incontournable lorsque le personnage est immédiatement suivi par un autre caractère de restriction (*, +,?, { N }, { n ,}, { n , m }). Le motif non incorrect correspond le moins de chaînes possible, tandis que le motif gourmand par défaut correspond au plus de chaînes que possible. Par exemple, pour la chaîne Oooo, «O +?» |
| . | Faites correspondre tout caractère unique sauf / n. Pour correspondre à tous les caractères, y compris «/ n», utilisez un motif comme «[./n]». |
| ( modèle ) | Match Modèle et obtenez ce match. Les matchs obtenus peuvent être obtenus à partir de la collection de matchs générés, en utilisant la collection Submatches dans VBScript et en utilisant l'attribut de 0 $ … à 9 $ dans JScript. Pour faire correspondre les caractères parenthèses, utilisez '/ (' ou '/)'. |
| (?: modèle ) | Match Match mais n'obtenez pas le résultat correspondant, c'est-à-dire, il s'agit d'un match sans objet et n'est pas stocké pour une utilisation future. Ceci est utile lors de l'utilisation ou des caractères (|) pour combiner différentes parties d'un motif. Par exemple, «Industry (?: y | ies) est une expression plus simple que« industrie | industries ». |
| (? = modèle ) | Pré-vérification avant, faites correspondre la chaîne de recherche au début de tout modèle de correspondance de chaîne. Il s'agit d'un match sans objet, c'est-à-dire que le match n'a pas besoin d'être récupéré pour une utilisation ultérieure. Par exemple, 'Windows (? = 95 | 98 | nt | 2000)' Peut correspondre à Windows dans Windows 2000, mais pas à Windows dans Windows 3.1. La pré-vérification ne consomme pas de caractères, c'est-à-dire après un match, la recherche du match suivant commence immédiatement après le dernier match, plutôt qu'après les personnages contenant la pré-vérification. |
| (?! modèle ) | Lookahead négatif correspond à la chaîne de recherche à tout moment où une chaîne ne correspond pas au modèle . Il s'agit d'un match sans objet, c'est-à-dire que le match n'a pas besoin d'être récupéré pour une utilisation ultérieure. Par exemple, 'Windows (?! 95 | 98 | nt | 2000)' peut correspondre à Windows dans Windows 3.1, mais pas à Windows dans Windows 2000. La pré-vérification ne consomme pas de caractères, c'est-à-dire après un match, la recherche de match suivante commence immédiatement après le dernier match, plutôt qu'après les personnages contenant la pré-vérification |
| x | y | Faire correspondre x ou y . Par exemple, «z | nourriture» peut correspondre à z ou à la nourriture. «(z | f) ood» correspond à zood ou à la nourriture. |
| [ xyz ] | Collection de personnage. Faites correspondre tout caractère contenu. Par exemple, «[ABC]« peut égaler »a» en simple. |
| [^ xyz ] | Une collection de caractères de valeurs négatifs. Faites correspondre tous les personnages non inclus. Par exemple, '[^ ABC]' peut correspondre à 'p' en simple. |
| [ AZ ] | Plage de caractères. Faites correspondre tout caractère dans la plage spécifiée. Par exemple, «[az]» peut correspondre à tous les caractères alphabétiques minuscules dans la gamme «a» à «z». |
| [^ az ] | Plage de caractères de valeur négative. Faites correspondre tous les caractères arbitraires qui ne sont pas dans la plage spécifiée. Par exemple, '[^ az]' peut correspondre à tous les caractères arbitraires qui ne sont pas dans la plage 'a' to 'z'. |
| / b | Faites correspondre une limite de mot, ce qui signifie la position entre le mot et l'espace. Par exemple, «ER / B» peut correspondre «er» dans jamais, mais pas «er» en verbe. |
| / B | Correspondre aux limites des non-mots. «er / b» peut correspondre à «er» en verbe, mais ne peut correspondre à «er» de jamais. |
| / c x | Correspond aux caractères de contrôle spécifiés par x . Par exemple, / cm correspond à un retour de contrôle-m ou de chariot. La valeur de X doit être celle de AZ ou AZ. Sinon, traitez C comme un personnage «C» original. |
| /d | Faites correspondre un caractère numérique. Équivalent à [0-9]. |
| /D | Faites correspondre un caractère non numerique. Équivalent à [^ 0-9]. |
| / f | Faites correspondre une pause de page. Équivalent à / x0c et / cl. |
| / n | Faites correspondre un personnage Newline. Équivalent à / x0a et / cj. |
| / r | Faites correspondre un caractère de retour de voiture. Équivalent à / x0d et / cm. |
| / | Faites correspondre tous les caractères d'espace blanc, y compris les espaces, les onglets, les pauses de page, etc. Équivalent à [/ f / n / r / t / v]. |
| / | Faites correspondre tous les caractères non espaces. Équivalent à [^ / f / n / r / t / v]. |
| / T | Faites correspondre un caractère d'onglet. Équivalent à / x09 et / ci. |
| / V | Faites correspondre un onglet vertical. Équivalent à / x0b et / ck. |
| / w | Faites correspondre tout caractère de mot qui comprend un soulignement. Équivalent à '[a-za-z0-9_]'. |
| / W | Faites correspondre tous les caractères sans mot. Équivalent à '[^ a-za-z0-9_]'. |
| / x n | Match n , où n est une valeur d'évasion hexadécimale. La valeur d'échappement hexadécimale doit être la longueur de deux nombres déterminés. Par exemple, «/ x41» correspond à A. «/ x041» est équivalent à «/ x04» & 1. Le codage ASCII peut être utilisé dans des expressions régulières. . |
| / num | Faites correspondre NUM , où Num est un entier positif. Référence à la correspondance obtenue. Par exemple, '(.) / 1' correspond à deux caractères identiques consécutifs. |
| / n | Identifie une valeur d'échappement octale ou une référence arrière. Si au moins n obtenait des sous-expressions avant / n , n est une référence arrière. Sinon, si n est un nombre octal (0-7), N est une valeur d'écapture octale. |
| / nm | Identifie une valeur d'échappement octale ou une référence arrière. Si au moins NM obtient des sous-expressions sont précédées d'au moins NM avant / nm , NM est une référence vers l'arrière. S'il y a au moins n que N est vendu avant / nm , n est une référence arrière suivie du littéral m . Si aucune des conditions précédentes n'est remplie, si N et M sont des nombres octaux (0-7), alors / nm correspondra à la valeur d'échappement octale nm . |
| / NML | Si n est un nombre octal (0-3) et que m et l sont tous deux des nombres octaux (0-7), la valeur d'évasion octale NML est appariée. |
| / u n | Match n , où n est un personnage Unicode représenté par quatre chiffres hexadécimaux. Par exemple, / u00a9 correspond au symbole du droit d'auteur (?). |
Après avoir construit une expression régulière, vous pouvez évaluer comme une expression mathématique, c'est-à-dire que vous pouvez évaluer de gauche à droite et dans un ordre prioritaire.
Le tableau suivant répertorie l'ordre prioritaire de divers opérateurs d'expression réguliers de la priorité la plus élevée à la priorité la plus basse:
| Opérateur | décrire |
|---|---|
| / / | Symbole d'échappement |
| (), (? :), (? =), [] | Accolades et crochets |
| *, +,?, {n}, {n,}, {n, m} | Qualificatif |
| ^, $, / anymetacharacter | Position et commande |
| | | Ou opérer |