Tableau de recherche de syntaxe regex

Les expressions régulières, également connues sous le nom d'expressions de règles, sont un modèle de texte utilisé pour rechercher, remplacer et contrôler le texte. Elles incluent principalement les lettres de a à z ainsi que certains métacaractères spéciaux. Les expressions régulières sont très largement utilisées, popularisées à l'origine par Unix et ensuite appliquées dans des langages tels que Scala, PHP, C#, Java, C++, Objective-C, Perl, Swift, VBScript, Javascript, Ruby et Python, entre autres. Apprendre les expressions régulières revient en réalité à apprendre une façon de penser logique très flexible, permettant de contrôler les chaînes de manière simple et rapide.
Caractère Regex Description
\ Marque le caractère suivant comme un caractère spécial, un caractère littéral ou un caractère d'échappement, ou encore une référence arrière ou un caractère d'échappement octal. Par exemple, “n" correspond au caractère "n". "\n" correspond à un saut de ligne. La chaîne "\\" correspond à "\", tandis que "\(" 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 aussi à la position après un “\n" ou "\r".
$ Correspond à la position de fin de la chaîne d'entrée. Si la propriété Multiline de l'objet RegExp est définie, $ correspond aussi à la position avant un “\n" ou "\r".
* Correspond à l'expression régulière précédente zéro ou plusieurs fois. Par exemple, zo* peut correspondre à “z" et "zoo". * équivaut à {0,}.
+ Correspond à l'expression régulière précédente une ou plusieurs fois. Par exemple, “zo+" peut correspondre à "zo" et "zoo", mais pas à "z". + équivaut à {1,}.
? Correspond à l'expression régulière précédente zéro ou une fois. Par exemple, “do(es)?" peut correspondre à "does" ou à "do" dans "does". ? équivaut à {0,1}.
{n} n est un entier non négatif. Correspond à exactement n occurrences. Par exemple, “o{2}" ne peut pas correspondre au "o" dans "Bob", mais peut correspondre aux deux o dans "food".
{n,} n est un entier non négatif. Correspond à au moins n occurrences. Par exemple, “o{2,}" ne peut pas correspondre à "o" dans "Bob", mais peut correspondre à tous les o dans "foooood". "o{1,}" équivaut à "o+". "o{0,}" équivaut à "o*".
{n,m} m et n sont des entiers non négatifs, où n<=m. Correspond à au moins n fois et au plus m fois. Par exemple, “o{1,3}" correspont à trois o dans "fooooood". "o{0,1}" équivaut à "o?". Notez qu'il ne doit pas y avoir d'espace entre la virgule et les deux nombres.
? Lorsque ce caractère suit immédiatement un autre modificateur (*,+,?,{n},{n,},{n,m}), le mode de correspondance est non gourmand. Le mode non gourmand correspond le moins de caractères possible à la chaîne recherchée, tandis que le mode par défaut est gourmand et correspond le plus de caractères possible. Par exemple, pour la chaîne “oooo", "o+?" correspond à un seul "o", alors que "o+" correspond à tous les "o".
. Correspond à n'importe quel caractère unique à l'exception de “\n". Pour correspondre à n'importe quel caractère, y compris "\n", veuillez utiliser un motif comme "(.|\n)".
(pattern) Correspond à pattern et capture cette correspondance. La correspondance capturée peut être extraite de l'ensemble des correspondances générées, utilisant le tableau SubMatches en VBScript et les propriétés $0…$9 en JScript. Pour correspondre à un caractère parenthèse, utilisez “\(" ou "\)".
(?:pattern) Correspond à pattern sans capturer la correspondance, c’est-à-dire qu’il s’agit d’une correspondance non capturée non stockée pour une utilisation ultérieure. Cela est utile lors de l'utilisation du caractère ou “(|)" pour combiner les différentes parties d'un motif. Par exemple, "industr(?:y|ies)" est une expression plus concise que "industry|industries".
(?=pattern) Affirmation positive anticipée, correspond à la chaîne recherchée au début de toute chaîne qui correspond au motif. Il s'agit d'une correspondance non capturée, c’est-à-dire que cette correspondance n'a pas besoin d'être stockée pour une utilisation ultérieure. Par exemple, “Windows(?=95|98|NT|2000)" correspond à "Windows" dans "Windows2000", mais ne correspond pas à "Windows" dans "Windows3.1". L'anticipation ne consomme pas de caractères, c’est-à-dire qu’après une correspondance, la recherche de la prochaine correspondance commence immédiatement après la dernière correspondance, et non à partir des caractères suivants.
(?!pattern) Négation anticipée, correspond à la chaîne recherchée au début de toute chaîne qui ne correspond pas au motif. C’est une correspondance non capturée, c’est-à-dire qu’elle n’a pas besoin d’être stockée pour une utilisation ultérieure. Par exemple “Windows(?!95|98|NT|2000)" correspond à "Windows" dans "Windows3.1", mais ne correspond pas à "Windows" dans "Windows2000". L'anticipation ne consomme pas de caractères, c’est-à-dire qu’après une correspondance, la recherche de la prochaine correspondance commence immédiatement après la dernière correspondance, et non à partir des caractères suivants.
(?<=pattern) Affirmation négative anticipée, similaire à l'affirmation positive anticipée, mais dans la direction opposée. Par exemple, “(?<=95|98|NT|2000)Windows" correspond à "Windows" dans "2000Windows", mais ne correspond pas à "Windows" dans "3.1Windows".
(?<!pattern) Négation négative anticipée, similaire à la négation positive anticipée, mais dans la direction opposée. Par exemple “(?<!95|98|NT|2000)Windows" correspond à "Windows" dans "3.1Windows", mais ne correspond pas à "Windows" dans "2000Windows".
x|y Correspond à x ou y. Par exemple, “z|food" peut correspondre à "z" ou "food". "(z|f)ood" correspond à "zood" ou "food".
[xyz] Ensemble de caractères. Correspond à n'importe quel caractère inclus. Par exemple, “[abc]" peut correspondre au caractère "a" dans "plain".
[^xyz] Ensemble de caractères négatif. Correspond à n'importe quel caractère non inclus. Par exemple, “[^abc]" peut correspondre au caractère "p" dans "plain".
[a-z] Plage de caractères. Correspond à n'importe quel caractère dans la plage spécifiée. Par exemple, “[a-z]" peut correspondre à n'importe quelle lettre minuscule de "a" à "z".
[^a-z] Plage de caractères négative. Correspond à n'importe quel caractère qui ne se trouve pas dans la plage spécifiée. Par exemple, “[^a-z]" peut correspondre à n'importe quel caractère qui n'est pas compris entre "a" et "z".
\b Correspond à une frontière de mot, c’est-à-dire à la position entre un mot et un espace. Par exemple, “er\b" peut correspondre à "er" dans "never", mais pas à "er" dans "verb".
\B Correspond à une non-frontière de mot. “er\B" peut correspondre à "er" dans "verb", mais pas à "er" dans "never".
\cx Correspond à un caractère de contrôle désigné par x. Par exemple, \cM correspond à un Control-M ou un retour chariot. La valeur de x doit être l'une des lettres A-Z ou a-z. Sinon, c est considéré comme un caractère littéral “c".
\d Correspond à un caractère numérique. Équivaut à [0-9].
\D Correspond à un caractère non numérique. Équivaut à [^0-9].
\f Correspond à un saut de page. Équivaut à \x0c et \cL.
\n Correspond à un saut de ligne. Équivaut à \x0a et \cJ.
\r Correspond à un retour chariot. Équivaut à \x0d et \cM.
\s Correspond à tout caractère blanc, y compris les espaces, les tabulations, les sauts de page, etc. Équivaut à [ \f\n\r\t\v].
\S Correspond à tout caractère non blanc. Équivaut à [^ \f\n\r\t\v].
\t Correspond à une tabulation. Équivaut à \x09 et \cI.
\v Correspond à un caractère de tabulation verticale. Équivaut à \x0b et \cK.
\w Correspond à tout caractère de mot, y compris le trait de soulignement. Équivaut à “[A-Za-z0-9_]".
\W Correspond à tout caractère non de mot. Équivaut à “[^A-Za-z0-9_]".
\xn Correspond à n, où n est une valeur d'échappement hexadécimale. La valeur d'échappement hexadécimale doit avoir exactement deux chiffres. Par exemple, “\x41" correspond à "A". "\x041" équivaut à "\x04&1". Il est également possible d'utiliser le codage ASCII dans les expressions régulières.
\num Correspond à num, où num est un entier positif. Utilisation de la référence pour les correspondances capturées. 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 n a été extrait d'une sous-expression, alors n fait référence à cette correspondance. Sinon, si n est un nombre octal (0-7), alors n est une valeur d'échappement octale.
\nm Identifie une valeur d'échappement octale ou une référence arrière. Si nm a été extrait d'une sous-expression, alors nm fait référence à cette correspondance. Si nm a été extrait d'au moins n sous-expressions, alors n fait référence à un caractère suivi d'un caractère littéral m. Si aucune des conditions précédentes n'est remplie, si n et m sont tous deux des chiffres octaux (0-7), alors \nm correspond à la valeur d'échappement octale nm.
\nml Si n est un chiffre octal (0-3), et que m et l sont tous deux des chiffres octaux (0-7), alors correspond à la valeur d'échappement octale nml.
\un Correspond à n, où n est un caractère Unicode représenté par quatre chiffres hexadécimaux. Par exemple, \u00A9 correspond au symbole de copyright (©).
Expressions régulières courantes
Nom d'utilisateur /^[a-z0-9_-]{3,16}$/
Mot de passe /^[a-z0-9_-]{6,18}$/
Mot de passe 2 (?=^.{8,}$)(?=.*\d)(?=.*\W+)(?=.*[A-Z])(?=.*[a-z])(?!.*\n).*$ (Doit contenir des chiffres/majuscule/minuscule/symboles, toutes les quatre types doivent être présentes, plus de 8 caractères)
Valeur hexadécimale /^#?([a-f0-9]{6}|[a-f0-9]{3})$/
Adresse e-mail /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/
/^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$/ ou \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
URL /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/ ou [a-zA-z]+://[^\s]*
Adresse IP /((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)/
/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/ ou ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?[0-9][0-9]?)
Balise HTML /^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$/ ou <(.*)(.*)>.*<\/\1>|<(.*) \/>
Supprimer le code\\commentaires (?<!http:|\S)//.*$
Correspond à des caractères à double octet (y compris les caractères chinois) [^\x00-\xff]
Caractères chinois [\u4e00-\u9fa5]
Plage de caractères chinois dans l'encodage Unicode /^[\u2E80-\u9FFF]+$/
Symboles chinois et ponctuation pleine (caractères) [\u3000-\u301e\ufe10-\ufe19\ufe30-\ufe44\ufe50-\ufe6b\uff01-\uffee]
Date (année-mois-jour) (\d{4}|\d{2})-((0?([1-9]))|(1[1|2]))-((0?[1-9])|([12]([1-9]))|(3[0|1]))
Date (mois/jour/année) ((0?[1-9]{1})|(1[1|2]))/(0?[1-9]|([12][1-9])|(3[0|1]))/(\d{4}|\d{2})
Heure (heures:minutes, format 24 heures) ((1|0?)[0-9]|2[0-3]):([0-5][0-9])
Numéro de téléphone fixe en Chine continentale (\d{4}-|\d{3}-)?(\d{8}|\d{7})
Numéro de téléphone mobile en Chine continentale 1\d{10}
Code postal en Chine continentale [1-9]\d{5}
Numéro d'identité en Chine continentale (15 ou 18 chiffres) \d{15}(\d\d[0-9xX])?
Entier non négatif (entier positif ou zéro) \d+
Entier positif [0-9]*[1-9][0-9]*
Entier négatif -[0-9]*[1-9][0-9]*
Entier -?\d+
Nombre décimal (-?\d+)(\.\d+)?
Ligne vide \n\s*\r ou \n\n(editplus) ou ^[\s\S ]*\n
Numéro QQ [1-9]\d{4,}
Mot ne contenant pas abc \b((?!abc)\w)+\b
Correspond à des caractères blancs au début ou à la fin ^\s*|\s*$
Éditeur utilisé fréquemment
Voici quelques remplacements pour des caractères chinois spéciaux (editplus)
^[0-9].*\n
^[^第].*\n
^[习题].*\n
^[\s\S ]*\n
^[0-9]*\.
^[\s\S ]*\n
<p[^<>*]>
href="javascript:if\(confirm\('(.*?)'\)\)window\.location='(.*?)'"
<span style=".[^"]*rgb\(255,255,255\)">.[^<>]*</span>
<DIV class=xs0>[\s\S]*?</DIV>

Référence rapide aux syntaxes d'expressions régulières - Techniques et syntaxes communes

Les expressions régulières sont un outil puissant pour le traitement du texte. Cette page vous fournit un tableau de référence rapide aux syntaxes d'expressions régulières pour vous aider à comprendre rapidement la syntaxe de base des expressions régulières, les modificateurs, les sous-expressions, les modes gourmands et non gourmands, etc.

Syntaxe de base des expressions régulières

Les expressions régulières sont utilisées pour décrire des règles de motifs de chaînes. La syntaxe de base courante inclut :

Modificateurs courants des expressions régulières

Les modificateurs permettent de modifier les règles de correspondance des expressions régulières, les modificateurs courants incluent :

Modes gourmands et non gourmands

Dans les expressions régulières, les quantificateurs sont gourmands par défaut et tentent de faire correspondre le plus de caractères possible. Le mode non gourmand peut être utilisé en ajoutant un ? après le quantificateur, exemple :

Sous-expressions et groupes

Les sous-expressions dans les expressions régulières sont définies à l'aide de parenthèses ( ( ) ), couramment utilisées pour extraire des parties des correspondances. Le groupement est réalisé à l'aide du symbole "|". Par exemple :

Recherche rapide des expressions régulières

Voici une recherche rapide des expressions régulières couramment utilisées :

Fonction Expression régulière
Correspond aux chiffres \d
Correspond aux non chiffres \D
Correspond aux lettres [a-zA-Z]
Correspond à n'importe quel caractère .
Correspond aux caractères blancs \s

Scénarios d'application des expressions régulières

Les expressions régulières sont largement utilisées dans les scénarios suivants :

Conseils pour apprendre les expressions régulières

Utilisez immédiatement notre table de référence rapide des syntaxes d'expressions régulières pour améliorer votre efficacité lors de l'écriture d'expressions régulières et renforcer vos capacités de traitement de texte !

Votre historique :
Choisir une langue