Apprendre systématiquement les expressions régulières (a): le texte de base

Auteur:Le petit rêve, Créé: 2017-03-29 10:52:47, Mis à jour: 2020-11-18 12:39:53

Apprendre systématiquement les expressions régulières (a): le texte de base

Quelle est l'expression régulière? Les expressions régulières sont des combinaisons de caractères spécifiques prédéfinis qui forment une chaîne de caractères de règles de filtrage.

  • L'expression régulière peut être utilisée pour:

    给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”);
    可以通过正则表达式,从字符串中获取我们想要的特定部分。
    

    Pour vous faciliter l'apprentissage, je vous recommande Regextor, un logiciel de vérification des expressions régulières.

    img

Les règles de l'expression régulière sont décrites ci-dessous:

  • Compatible avec les caractères de texte ordinaires

    Les expressions régulières peuvent contenir uniquement du texte ordinaire, ce qui représente une correspondance précise du texte; par exemple:

    L'expression régulière est:songLe texte est en attente de correspondance. Résultats après correspondance: xiaosongJe vous en prie. L'expression régulière est en majuscules par défaut, de sorte que le chant ne correspond pas à Song Song. Cependant, la plupart des implémentations de l'expression régulière offrent une option pour indiquer l'absence de majuscules.

  • Compatible avec n'importe quel caractère

    . est utilisé pour correspondre à un caractère quelconque, par exemple:

    L'expression régulière: c.t. En attente de correspondance Les résultats après correspondance:cat cetCaat dog Analyse: c.t correspond à une chaîne de caractères commençant par " c " et se terminant par " t " avec un caractère aléatoire au milieu.

    同理,多个连续的.可以匹配多个连续的任意字符:

    Expression régulière: c...t En attente de correspondance Résultats après correspondance: cat cetcaatle chien

  • Compatibilité avec les caractères spéciaux

    . contient une signification particulière dans l'expression régulière et est un caractère particulier..\ est également un caractère particulier qui peut jouer un rôle de traduction sur un caractère particulier................................................................................................

    L'expression régulière: c.t. En attente de correspondance Résultats après correspondance: catc.tLe chien Remarque: comme \ est aussi un caractère spécial, il est nécessaire d'utiliser deux contrepoints \ pour faire correspondre un vrai caractère \:

    L'expression régulière: c\t En attente de correspondance Résultats après correspondance: catc\tle chien

  • Utiliser des ensembles de caractères

    Comme indiqué ci-dessus. Je peux faire correspondre n'importe quel caractère, mais que faire si je veux faire correspondre plusieurs caractères spécifiques?

    L'expression régulière: c[ab]t En attente de correspondance Les résultats après correspondance:cat cbtCet L'analyse: [ab] correspond à "a ou b . Ainsi, c[ab]t correspond à cat et cbt sans correspondre à cet".

  • Utiliser des espaces de groupes de caractères

    Dans l'exemple ci-dessus, si je veux faire correspondre cet, est-ce que j'ajoute un dans [?], et si je veux faire correspondre n'importe quelle lettre minuscule, est-ce que j'en écris des dizaines?

    Expression régulière: c[a-z]t En attente de correspondance: cat cbt czt c2t Les résultats des matchs:cat cbt cztc2t Analysis: c[a-z]t est une lettre qui commence par "c" et se termine par "t" et se termine par une lettre "a" - "z" au milieu.

    Il y a aussi des espaces similaires:

    [0-9] fonctionne de la même façon que [0123456789]. [A-F] correspondant aux lettres majuscules A à F. [A-Z] correspond à tous les caractères en majuscules de A à Z. [a-z] correspond à tous les caractères minuscules de a à z. [A-z] correspond à tous les caractères de l'ASCII A à l'ASCII z (pas seulement à tous les caractères, mais aussi aux caractères de l'ASCII A à z, tels que [ et ^, etc.)). [A-Za-z0-9] correspond à toutes les lettres et chiffres en majuscules.

  • Compatibilité avec les non-ensemble de caractères

    Les ensembles de caractères sont généralement utilisés pour spécifier un ensemble de caractères qui doivent être appariés. Mais parfois, vous voulez exclure un ensemble de caractères que vous ne voulez pas apparier. Cela peut être réalisé en refusant les ensembles de caractères.

    L'expression régulière est: c[^a-z]t En attente de correspondance: cat cbt czt c2t cAt Résultats après correspondance: cat cbt cztc2t cAtAnalyser: ceci est le contraire de l'exemple précédent. === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === === =========

    Notez que le caractère ^ est un dématch de tous les caractères de la collection de caractères.

  • Les caractères de base

    Les caractères élémentaires ont une signification particulière dans les expressions régulières, comme nous l'avons dit plus haut... [et].........................................................................................

    Tous les caractères peuvent être précédés d'une transformation inverse de la courbe verticale, qui correspond à eux-mêmes plutôt qu'à leur signification particulière. Par exemple, [ correspond à " [ ":

    Expression régulière: a[b] En attente de correspondance: a[b ab a[[b Les résultats après correspondance:a[bAb a [[b]] Remarque: \ est utilisé pour transférer des caractères méta, ce qui signifie que \ est aussi un méta-caractère.

    L'expression régulière: a\b Télécharger le texte: a\b a\b a[[b] Résultats après correspondance: a\ba\bLe nombre d'heures

  • Caractères blancs

    Parfois, vous devrez peut-être faire correspondre des caractères blancs qui ne peuvent pas être imprimés dans le texte. Par exemple, vous souhaitez trouver tous les caractères Tab ou tous les caractères de remplacement. Vous pouvez utiliser les caractères spéciaux de la table suivante:

    img

    Par exemple, \r\n correspond à une combinaison de virages, ce qui représente une virage de fichier dans Windows. Dans Linux et Unix, il suffit d'utiliser \n.

  • Compatible avec un type de caractère spécifique

    Il y a des méta-caractères spéciaux qui peuvent être utilisés pour correspondre à des ensembles de caractères couramment utilisés. Ces méta-caractères sont appelés classes de caractères correspondantes. Vous trouverez qu'ils sont très pratiques à utiliser.

    Compatible numérique ou non numérique Comme indiqué ci-dessus, tous les nombres peuvent être appariés. Si vous ne voulez pas apparier n'importe quel nombre, vous pouvez utiliser [^0-9]. La table suivante répertorie les caractères de classe numériques et non numériques:

    img

    L'expression régulière: c\dt En attente de correspondance Résultats de la correspondance: catc2tCZTc9t

    L'expression régulière: c\Dt En attente de correspondance Les résultats des matchs:catC2tcztc9t Compatible avec les caractères alphabétiques et non alphabétiques Un autre caractère de classe commun est \w et \W:

    img

    L'expression régulière: c\wt En attente de correspondance Les résultats des matchs:cat c2tJe suis désolé.

    L'expression régulière est: c\Wt En attente de correspondance Résultats après correspondance: cat c2tc-t c\tMatcher les blancs et les non-blancs La dernière classe de correspondance à rencontrer est la classe blanche:

    img

    L'expression régulière: c\st En attente de correspondance Résultats après correspondance: catc tLes prix

    L'expression régulière: c\St En attente de correspondance Les résultats des matchs:catc tc2t c\t

  • Pour correspondre à un ou plusieurs caractères

    Le caractère + signifie qu'il correspond à un ou plusieurs caractères. Par exemple, a correspond à un "a" et a+ correspond à un ou plusieurs "a".

    L'expression régulière: cat En attente de correspondance Résultats après correspondance: ctcat- Je ne sais pas.

    L'expression régulière: ca + t En attente de correspondance Résultats après correspondance: ctcat caat caaatLorsque vous utilisez + sur un ensemble de caractères, vous devez placer le symbole + à l'extérieur du ensemble:

    L'expression régulière est: c[0-9]+t En attente de correspondance: ct c0t cat c123t Résultats après correspondance: ctc0tle chatc123tAnalyse: c[0-9]+t signifie une chaîne de caractères commençant par "c" et se terminant par "t" avec un ou plusieurs chiffres au milieu.

    Bien sûr, [0-9+] est aussi une expression régulière légitime, mais elle indique un ensemble de caractères contenant les symboles "0" - "9" et "+".

    Généralement, les méta-caractères tels que. et + sont utilisés comme signification littérale lorsqu'ils sont utilisés dans des ensembles de caractères, il n'est donc pas nécessaire de les traduire. Mais il est normal de les traduire, donc, [0-9+] et [0-9+] ont la même fonction.

    Remarque: + est un méta-caractère, et pour correspondre à "+" il faut utiliser le dérivé +。

  • Il n'y a pas de caractères.

    Si vous souhaitez faire correspondre zéro ou plus de caractères, vous pouvez utiliser *meta characters.

    L'expression régulière: ca*t En attente de correspondance Les résultats après correspondance:ct cat caatJe suis désolé. Remarque:* Les symboles sont des méta-caractères.

  • Il y a une différence entre les deux.

    ? correspond à un zéro ou à un caractère. Ainsi,? est parfait pour correspondre à un caractère optionnel dans le texte.

    L'expression régulière: ca?t En attente de correspondance Les résultats après correspondance:ct catCaat cbt Remarque:? est un symbole métrique.

  • Utiliser le nombre de correspondances

    Les expressions régulières permettent de spécifier le nombre de fois où une correspondance peut être effectuée. Le nombre peut être spécifié entre les verbe {verbe et verbe}. Remarque: {et} sont également des méta-caractères, qui nécessitent une traduction lorsque l'on utilise un sens littéral.

    Le nombre exact de correspondances Pour spécifier le nombre de fois où vous devez faire une correspondance, vous pouvez entrer un nombre entre {et}. Par exemple, {3} correspondra aux caractères ou aux ensembles qui apparaissent 3 fois avant:

    L'expression régulière: ca{3}t En attente de correspondance Résultats après correspondance: ct catcaaatJe suis désolé. Le nombre de fois au moins On peut aussi spécifier uniquement la valeur minimale de la correspondance. Par exemple, {2,} signifie correspondance 2 fois ou plus:

    L'expression régulière est: ca{1,} t En attente de correspondance Résultats après correspondance: ctcat caaatJe suis désolé. Compatibilité entre les nombres décimaux Nous pouvons également utiliser les valeurs minimale et maximale pour déterminer le nombre de correspondances. Par exemple, {2,3} signifie qu'il y a au moins 2 correspondances et au plus 3 correspondances.

    L'expression régulière est: ca{2,3} t En attente de correspondance Résultats après correspondance: ct catcaaatJe suis désolé. Donc? et {0,1} ont la même fonction, + et {1,} ont la même fonction.

  • La correspondance sans cupidité

    Il y a aussi des sites de jeux vidéo.

    L'expression régulière est: s.*g En attente de correspondance Résultats des matchs: xiao song xiao song Analyse: s.*g ne correspond pas aux deux "songs", comme prévu, mais correspond à tous les textes entre le premier s et le dernier g.

    C'est parce que * et + sont des correspondances avides. C'est-à-dire que l'expression régulière cherche toujours la plus grande correspondance, et non la plus petite, ce qui est intentionnellement conçu.

    Mais si vous ne souhaitez pas de correspondance avide, utilisez les correspondances non avides de ces mots-clés (qui correspondent au moins de caractères possible).

    img

    Je suis désolé.La version gratuite de l'application est disponible en anglais, donc vous pouvez utiliser *? pour modifier l'exemple ci-dessus:

    正则表达式:s.Pourquoi? En attente de correspondance Résultats après correspondance: xiaosong- Je sais.song 分析:可以看到s.? g correspond à deux "songs"?.

  • Définir les limites des chaînes

    Les méta-caractères correspondant aux bordures des chaînes sont ^ et $, respectivement pour le début et la fin des chaînes.

    ^ Utilisé comme suit:

    L'expression régulière: ^ xiao

    Le texte est en attente de correspondance Les résultats après correspondance:xiaoune chanson

    Le texte est en attente de correspondance: axiaosong Les résultats de la correspondance: axiaosong Analyse: ^ xiao correspond à une chaîne commençant par " xiao ".

    $ est utilisé comme suit:

    L'expression régulière: song$

    En attente de correspondance Résultats après correspondance: xiaosong

    En attente de correspondance Le résultat de l'appariement: Xiaosonga L'analyse: song$ correspond à une chaîne terminée par "song".

    Partagé avec:

    L'expression régulière est: ^ [0-9a-zA-Z] {4,} $

    En attente de correspondance Les résultats après correspondance:a1b234ABC

    En attente de correspondance: + a1b23 = 4ABC Résultat après correspondance: + a1b23 = 4ABC Analyse: ^ [0-9a-zA-Z]{4,} $ correspondant à un chiffre ou à une lettre, et dont le nombre de chiffres est supérieur ou égal à une chaîne de quatre chiffres.

    Remarque: ^ est négatif si elle se trouve au début de la collection; si elle se trouve à l'extérieur de la collection, elle correspond au début de la chaîne.

  • Utiliser le mode multilignes

    Cependant, le mode multilinial peut être activé. Dans le mode multilinial, les moteurs d'expressions régulières utilisent le symbole de remplacement comme séparateur de la chaîne, ^ correspond au début du texte ou au début d'une ligne, et $ correspond à la fin du texte ou à la fin d'une ligne.

    Modifiez l'exemple précédent:

    L'expression régulière est la suivante:

    En attente de correspondance + a1b23 est égal à 4ABC ABC123456 Je suis désolé

    Les résultats après correspondance:a1b234ABC+a1b23=4ABC Pour les produits de baseABC123456L'analyse: ((?m) ^ [0-9a-zA-Z]{4,} $ va correspondre à chaque ligne de chiffres ou de lettres, et le nombre de chiffres est supérieur à une chaîne de quatre chiffres.

    Remarque: si vous utilisez le mode multiligne, ((?m) doit être placé au début de l'expression régulière. (?m) n'est pas pris en charge dans la plupart des implémentations d'expressions régulières. Certaines implémentations d'expressions régulières prennent également en charge l'utilisation de \A pour le début de la matrice et \Z pour la fin de la matrice.

Après avoir lu ce qui précède, vous pouvez lire le prochain article sur l'apprentissage systématique de l'expression régulière:

Traduit de l'anglais et traduit de l'anglais


Plus de