Concepts de base
Une expression régulière est un modèle de texte qui comprend à la fois des caractères ordinaires (par exemple, les lettres entre a et z) et des caractères spéciaux (appelés « métacaractères »). Un modèle décrit une ou plusieurs chaînes à rechercher lors de la recherche de texte.
Tout d'abord, nous recommandons plusieurs éditeurs d'expressions régulières
Debuggex : https://www.debuggex.com/
PyRegex :http://www.pyregex.com/
Regexper : http://www.regexper.com/
L'expression régulière est une opération de recherche et de remplacement de chaîne. Les expressions régulières sont largement utilisées dans les éditeurs de texte. Par exemple, les expressions régulières sont utilisées :
.
[copie] Vérifiez si le texte contient le mot caractéristique spécifié
Trouvez la position des mots caractéristiques correspondants dans le texte
Extraire des informations du texte, telles que : sous-chaîne de chaîne
Modifier le texte
Description : Les expressions régulières sont généralement utilisées pour deux tâches : 1. Vérification, 2. Rechercher/remplacer. Lorsqu'il est utilisé pour la vérification, il est généralement nécessaire d'ajouter ^ et $ avant et après pour correspondre à la chaîne entière à vérifier. L'ajout de cette limite lors de la recherche/remplacement dépend des exigences de recherche. ajoutez avant et après b au lieu de ^ et $. Les expressions régulières couramment utilisées répertoriées dans ce tableau ne sont précédées ou suivies d'aucune restriction, à l'exception de quelques-unes. Veuillez les gérer vous-même en fonction de vos besoins.
Commande prioritaire
Une fois qu'une expression régulière est construite, elle peut être évaluée comme une expression mathématique, c'est-à-dire qu'elle peut être évaluée de gauche à droite et dans un ordre de priorité. Le tableau suivant répertorie l'ordre de priorité des différents opérateurs d'expression régulière, de la priorité la plus élevée à la priorité la plus basse :
操作符 | 描述 |
---|---|
转义符 | |
(), (?:), (?=), [] | 圆括号和方括号 |
*, , ?, {n}, {n,}, {n,m} | 限定符 |
^, $, anymetacharacter | 位置和顺序 |
Créer une expression régulière
Construire des expressions régulières revient à créer des expressions mathématiques. Autrement dit, utiliser une variété de métacaractères et d'opérateurs pour combiner de petites expressions afin de créer des expressions plus grandes.
Une expression régulière peut être construite en plaçant les différents composants du modèle d'expression entre une paire de délimiteurs.
Pour JScript, le délimiteur est une paire de caractères barre oblique (/). Par exemple :
/expression/
Pour VBScript, une paire de guillemets ("") est utilisée pour déterminer les limites de l'expression régulière. Par exemple :
Regardons un exemple
var re =new RegExp("^[a-zA-Z][a-zA-Z0-9_]{5,19}$");
si(re.test(aaaa)){
alert("Format correct");
}autre{
alert("Erreur de format");
>
Les composants d'une expression régulière peuvent être un caractère unique, une collection de caractères, une plage de caractères, une sélection entre des caractères ou toute combinaison de tous ces composants.
Expressions régulières couramment utilisées
Expression régulière correspondant aux caractères chinois : [u4e00-u9fa5]
Commentaire : Faire correspondre le chinois est vraiment un casse-tête. Avec cette expression, ce sera plus facile
Faire correspondre les caractères à deux octets (y compris les caractères chinois) : [^x00-xff]
Commentaire : Peut être utilisé pour calculer la longueur d'une chaîne (la longueur d'un caractère codé sur deux octets compte pour 2, et la longueur d'un caractère ASCII compte pour 1)
Expression régulière correspondant à des lignes vides : ns*r
Commentaire : Peut être utilisé pour supprimer des lignes vides
Expression régulière correspondant aux balises HTML : <(S*?)[^>]*>.*?1>|<.* />
Commentaire : La version qui circule sur Internet est dommage que celle ci-dessus ne puisse en correspondre qu'une partie, et elle est encore impuissante pour les balises imbriquées complexes
Expression régulière correspondant aux caractères d'espacement de début et de fin : ^s*|s*$
Commentaire : Il peut être utilisé pour supprimer les caractères d'espacement en début et en fin de ligne (y compris les espaces, les tabulations, les sauts de formulaire, etc.), une expression très utile
Expression régulière correspondant aux adresses e-mail : w ([- .]w )*@w ([-.]w )*.w ([-.]w )*
Commentaire : Très utile pour la validation de formulaire
URL correspondant à l'expression régulière : [a-zA-z]://[^s]*
Commentaire : La version qui circule sur Internet a des fonctions très limitées. Celle ci-dessus peut essentiellement répondre aux besoins
Le compte correspondant est-il légal (commençant par une lettre, 5 à 16 octets autorisés, traits de soulignement alphanumériques autorisés) : ^[a-zA-Z][a-zA-Z0-9_]{4,15}$
Commentaire : Très utile pour la validation de formulaire
Faire correspondre les numéros de téléphone nationaux : d{3}-d{8}|d{4}-d{7}
Commentaire : Format correspondant tel que 0511-4405222 ou 021-87888822
Correspond au numéro QQ de Tencent : [1-9][0-9]{4,}
Commentaire : le compte Tencent QQ commence à partir de 10 000
Correspondre au code postal chinois : [1-9]d{5}(?!d)
Commentaire : Le code postal de la Chine est un nombre à 6 chiffres
Carte d'identité correspondante : d{15}|d{18}
Commentaire : la carte d’identité chinoise comporte 15 ou 18 chiffres
Correspondre à l'adresse IP : d .d .d .d
Commentaire : Utile lors de l'extraction de l'adresse IP
Faire correspondre des numéros spécifiques
[copie] ^[1-9]d*$ // Faire correspondre les entiers positifs
^-[1-9]d*$ // Faire correspondre les entiers négatifs
^-?[1-9]d*$ //Faire correspondre les entiers
^[1-9]d*|0$ // Fait correspondre les entiers non négatifs (entiers positifs 0)
^-[1-9]d*|0$ // Correspond aux entiers non positifs (entiers négatifs 0)
^[1-9]d*.d*|0.d*[1-9]d*$ //Faire correspondre les nombres à virgule flottante positifs
^-([1-9]d*.d*|0.d*[1-9]d*)$ //Faire correspondre les nombres à virgule flottante négatifs
^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0 |0)$ //Faire correspondre le nombre à virgule flottante
^[1-9]d*.d*|0.d*[1-9]d*|0?.0 |0$ //Faire correspondre les nombres à virgule flottante non négatifs (nombres à virgule flottante positifs 0)
^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0 |0$ //Faire correspondre les nombres à virgule flottante non positifs (nombres à virgule flottante négatifs 0)
Commentaire : utile lors du traitement de grandes quantités de données, veuillez faire attention aux corrections lors d'une demande spécifique
Correspondre à une chaîne spécifique
[copie]^[A-Za-z] $ // Correspond à une chaîne composée de 26 lettres anglaises
^[A-Z] $ // Correspond à une chaîne composée de 26 lettres anglaises majuscules
^[a-z] $ // Correspond à une chaîne composée de 26 lettres anglaises minuscules
^[A-Za-z0-9] $ // Correspond à une chaîne composée de chiffres et de 26 lettres anglaises
^w $ // Correspond à une chaîne composée de chiffres, de 26 lettres anglaises ou de traits de soulignement
Commentaires : Certaines des expressions les plus basiques et les plus couramment utilisées
Carte mentale