Type/to search
8
Follow
1376
Followers
Apprendre les expressions régulières de manière systématique (I) : Les bases
Tutorials
Created 2017-03-29 10:52:47  Updated 2020-11-18 12:39:53
 2
 3402

Apprendre les expressions régulières de manière systématique (I) : Les bases

Quels sont les expressions régulières
Une expression régulière est une combinaison de caractères particuliers, définis à l'avance, qui forment un ensemble de chaînes de règles de chaînes, utilisées pour exprimer une logique de filtrage de chaînes.

  • Les expressions régulières permettent d'atteindre les objectifs suivants:

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

    Pour faciliter l'apprentissage, nous vous recommandons Regextor, un logiciel de validation d'expressions régulières, que vous pouvez consulter dans mon article, qui contient de nombreux bons logiciels pour Mac.

    img

Les règles de l'expression régulière sont décrites comme suit:

  • Correspondance avec le texte ordinaire

    Une expression régulière ne peut contenir que du texte ordinaire, et doit correspondre exactement à ce texte. Par exemple:

    L'expression officielle est:song
    Le texte en espagnol de l'article est en espagnol.
    Résultats du match: xiaosongge,xiaoSongge
    Par défaut, les expressions régulières sont majuscules et minuscules, donc song ne correspond pas à "Song". Cependant, la plupart des implémentations d'expressions régulières fournissent une option indiquant que les majuscules et minuscules ne sont pas distingués.

  • Correspondance de caractères aléatoires

    . Utilisé pour faire correspondre un caractère au hasard, par exemple:

    Expression régulière: c.t
    Il y a un lien entre le film et le film Cat cet caaat dog
    Résultats après match:cat cet caaat dog
    Analyse: c.t correspond à une chaîne de caractères commençant par " c " et se terminant par " t " avec un caractère arbitraire au milieu.

    Il est également possible de faire correspondre plusieurs caractères aléatoires:

    Expression régulière: c..t
    Le texte en attente de correspondance: cat cet caat dog
    Résultats après match: cat cet caat dog

  • Correspondance avec les caractères spéciaux

    . dans une expression régulière contient une signification spéciale, c'est un caractère spécial. .\ est aussi un caractère spécial qui peut servir de traduction pour les caractères spéciaux. Si vous voulez faire correspondre un vrai caractère " . ", il faut ajouter " .\ " avant de traduire le caractère..Le caractère " . " représente le véritable .

    Expression régulière: c.t
    Le texte en attente de correspondance: cat c.t dog
    Résultats de la recherche: catc.t dog
    Remarque: comme \ est aussi un caractère spécial, il faut utiliser deux diapositives pour faire correspondre un vrai .\:

    Expression régulière: c\t
    À voir avec le texte: cat c\t dog
    Résultats de la recherche: catc\t dog

  • Utiliser un jeu de caractères

    Je peux faire correspondre n'importe quel caractère, mais que faire si je veux faire correspondre plusieurs caractères spécifiques ?[et le [métal <unk>].

    Expression régulière: c[ab]t
    Pour le texte: cat cbt cet
    Résultats après match:cat cbt cet
    Une analyse:[ab] correspond à "a" ou "b" ≠ c[ab]t correspond à cat et cbt mais pas à cet

  • Utiliser une bande de caractères

    Dans l'exemple ci-dessus, si je veux faire correspondre cet,[[Est-ce qu'il y en a un de plus ?] Donc si je veux faire correspondre n'importe quelle petite lettre, est-ce que je vais écrire des dizaines de lettres dedans ? C'est possible, mais c'est trop long.[a-z]:

    Expression régulière: c[a-z]t
    Pour le texte: cat cbt czt c2t
    Résultats après match:cat cbt czt c2t
    Analyse réalisée par: c[a-z]t représente une lettre qui commence par " c " et se termine par " t ", avec au milieu une lettre quelconque des lettres " a " - " z ".

    Il y a d'autres espaces similaires:

    [0 à 9] et[La fonctionnalité est la même que celle de 0123456789]: faire correspondre tous les chiffres.
    [A-F] correspond aux lettres majuscules de A à F.
    [A-Z] correspond à toutes les lettres majuscules de A à Z.
    [a-z] correspond à tous les petits caractères de a à z.
    [A-z] correspond à tous les caractères de l'ASCII A à l'ASCII z, et non seulement à tous les caractères, mais aussi aux caractères de l'ASCII A à z, comme[Les autres sont les suivants:
    [A-Za-z0-9] correspond à la taille de toutes les lettres et chiffres.

  • Correspondance des non-ensembles de caractères

    Les ensembles de caractères sont généralement utilisés pour spécifier un groupe de caractères qui doivent être appariés. Parfois, cependant, vous souhaitez exclure un groupe de caractères que vous ne souhaitez pas apparier. Cela peut être réalisé par la négation de l'ensemble de caractères. Par exemple:

    Expression régulière: c[^a-z]t
    Pour le texte de la correspondance: cat cbt czt c2t cAt
    Résultats après match: cat cbt czt c2t cAt
    Analyse: C'est le contraire de l'exemple précédent.[a-z] correspond à toutes les lettres minuscules, alors que [^a-z] correspond à tous les caractères qui ne sont pas en minuscules。

    Notez que le caractère ^ annule la correspondance de tous les caractères du jeu de caractères.

  • Caractères originaux

    Les caractères métalliques ont une signification particulière dans les expressions régulières, comme nous l'avons dit plus haut.[Les caractères ne peuvent pas être utilisés pour exprimer directement leur signification, par exemple,[Pour faire correspondre.["Utiliser pour faire correspondre".

    Tous les méta-characters peuvent être précédés d'une traduction en italique inverse, et lorsqu'ils sont traduits, les caractères correspondent à eux-mêmes plutôt qu'à leur signification particulière. Par exemple,[Je vais faire un match.[ ":

    Expression régulière: a[b
    Texte à faire correspondre:[b ab a[[b
    Résultats après match:a[b ab a[[b
    Remarque: \ est utilisé comme caractère transitif, ce qui signifie que \ est aussi un caractère métallique. Donc, si vous avez besoin de faire correspondre le vrai " \ ", vous pouvez utiliser\:

    Expression régulière: a\b
    Texte à faire correspondre:\b a\b a[[b
    Résultats après correspondance: a\b a\b a[[b

  • 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 pouvoir 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 changement d'itinéraire de retour, représentant un changement de file dans Windows. Dans les systèmes Linux et Unix, il suffit d'utiliser \n pour cela.

  • Pour correspondre à un type de caractère spécifique

    Il existe des méta-characters spéciaux qui peuvent être utilisés pour faire correspondre des ensembles de caractères couramment utilisés. Ces méta-characters sont appelés classes de caractères de correspondance. Vous trouverez qu'il est très pratique de les utiliser.

    Numéros de correspondance ou non
    Il est vrai qu'il est difficile de trouver un emploi.[0-9] peut correspondre à tous les nombres. Si vous ne voulez pas correspondre à aucun nombre, vous pouvez utiliser[^0-9]。 La liste des caractères numériques et non numériques est la suivante:

    img

    Expression régulière:
    Pour le texte: cat c2t czt c9t
    Résultats de la recherche: catc2t czt c9t

    Expression régulière:
    Pour le texte: cat c2t czt c9t
    Résultats après match:cat c2t czt c9t
    Correspondance des caractères alphabétiques et non alphabétiques
    Un autre caractère métaphorique commun est \w et \W:

    img

    Expression régulière: c\wt
    Pour correspondre au texte: cat c2t czt c-t c\t
    Résultats après match:cat c2t c-t c\t

    Expression régulière:
    Pour correspondre au texte: cat c2t c-t c\t
    Résultats après match: cat c2tc-t c\t
    Correspondance entre les espaces vides et les espaces non vides
    La dernière catégorie de correspondance que vous rencontrerez est une catégorie vide:

    img

    Expression régulière:
    Pour correspondre au texte: cat c t c2t c\t
    Résultats de la recherche: catc t c2t c\t

    Expression régulière:
    Pour correspondre au texte: cat c t c2t c\t
    Résultats après match:cat c t c2t c\t

  • Matcher un ou plusieurs caractères

    Les caractères + et + correspondent à un ou plusieurs caractères. Par exemple, a correspond à "a" et a+ correspond à un ou plusieurs "a".

    Expression régulière: cat
    Le texte en attente de correspondance: ct cat caat caaat
    Résultats de la correspondance: ctcat caat caaat

    Expression régulière: ca + t
    Le texte en attente de correspondance: ct cat caat caaat
    Résultats de la correspondance: ctcat caat caaat
    Lorsque vous utilisez + sur un jeu de caractères, le signe + doit être placé à l'extérieur du jeu:

    Expression régulière: c[0-9]+t
    Pour le texte: ct c0t cat c123t
    Résultats de la correspondance: ctc0t cat c123t
    Analyse réalisée par: c[0-9] + t représente 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 représente un ensemble de caractères qui contient les symboles " 0 " - " 9 " et " + "

    En général, les caractères métalliques tels que . et + sont utilisés comme signification littérale pour les ensembles de caractères, il n'est donc pas nécessaire de les traduire.[0 à 9+] et[0-9+Les fonctions sont les mêmes.

    Remarque: + est un caractère métallique, et "+" nécessite une traduction+。

  • Matcher zéro ou plus de caractères

    Si vous souhaitez faire correspondre zéro caractères ou plus, vous pouvez utiliser*Nom de l'alphabet:

    Expression régulière:*t
    Pour le texte de la correspondance: ct cat caat cbt
    Résultats après match:ct cat caat cbt
    Avis:Les symboles sont des caractères métalliques. Pour pouvoir correspondre à " * ", il faut faire une translittération.

  • Matcher des zéros ou un caractère

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

    Expression régulière: ca?t
    Pour le texte de la correspondance: ct cat caat cbt
    Résultats après match:ct cat caat cbt
    Remarque: le symbole ? est un caractère métallique.?。

  • Nombre de correspondances utilisées

    Les expressions régulières permettent de spécifier le nombre de fois où une correspondance est faite. Le nombre de fois peut être spécifié entre les lignes <unk> { <unk> <unk> <unk> <unk> <unk> } <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk>
    Remarque: { et } sont également des caractères de base, et doivent être traduits lorsqu'ils sont utilisés au sens littéral.

    Nombre exact de correspondances
    Pour spécifier le nombre de correspondances, vous pouvez entrer un nombre entre { et }. Par exemple, { 3 } correspondra à 3 caractères ou ensembles précédents:

    Expression régulière: ca{3}t
    Le texte en attendant le match: ct cat caaat cbt
    Résultats après match: ct cat caaat cbt
    Nombre minimum de correspondances
    On peut aussi spécifier que les valeurs minimales correspondent. Par exemple, {2,} signifie correspondre 2 fois ou plus:

    Expression régulière: ca{1,}t
    Le texte en attendant le match: ct cat caaat cbt
    Résultats de la correspondance: ctcat caaat cbt
    Correspondance entre les espaces dimensionnels
    Nous pouvons également utiliser les valeurs minimale et maximale pour déterminer le nombre de correspondances. Par exemple, {2,3} signifie un minimum de 2 correspondances et un maximum de 3 correspondances.

    Expression régulière:
    Le texte en attendant le match: ct cat caaat cbt
    Résultats après match: ct cat caaat cbt
    Donc ? et la fonction de {0,1} est la même que la fonction de {1,}

  • Une correspondance sans cupidité

    Pour commencer, regardez les exemples suivants:

    Expression régulière: s.*g
    Le texte en espagnol de la chanson xiao song
    Résultats du match: xiao song xiao song
    Le débat est ouvert.*g ne fait pas correspondre deux " songs " comme prévu, mais tout le texte entre le premier " s " et le dernier " g ".

    C'est parce que*et + sont des correspondances avides. C'est-à-dire que les expressions régulières recherchent toujours le plus grand nombre de correspondances, et non le plus petit, ce qui est intentionnel.

    Mais si vous ne voulez pas d'une correspondance avide, utilisez les correspondances non avides de ces mots quantiques (matchez le moins de caractères possible).

    img

    *- Je sais.*Une version non-corrupte est disponible.*Pour modifier l'exemple ci-dessus:

    Expression régulière: s.?g
    Le texte en espagnol de la chanson xiao song
    Résultats du match: xiaosong xiao song
    Analyse: vous pouvez voir s.
    ?g correspond à deux chansons.

  • Définir les limites de la chaîne

    Les caractères métalliques correspondant aux frontières des chaînes de caractères sont ^ et $, respectivement utilisés au début et à la fin de la chaîne de caractères。

    ↑ Utilisation:

    Expression régulière: ^xiao

    Le texte en espagnol de l'article est en espagnol.
    Résultats après match:xiaosong

    Il a été publié dans la revue de l'opinion publique de la ville de New York, New York Times.
    Résultats du match: axiaosong
    Analyse: ^xiao correspond à une chaîne commençant par " xiao " .

    $ est utilisé comme suit:

    L'expression officielle est song$.

    Le texte en espagnol de l'article est en espagnol.
    Résultats du match: xiaosong

    Le texte en espagnol de Xiaosonga est en espagnol.
    Résultats du match: Xiaosonga
    Analyse: song$ correspond à une chaîne de caractères se terminant par " song " <unk>

    Partagé par:

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

    Texte à faire correspondre:
    Résultats après match:a1b234ABC

    Le texte en attente de correspondance: + a1b23 = 4ABC
    Résultat après correspondance: + a1b23 = 4ABC
    Pour l'analyse:[0-9a-zA-Z]{4,}$ correspond à une chaîne de caractères composée de chiffres ou de lettres et dont le nombre de chiffres est supérieur ou égal à quatre chiffres.

    Remarque: ^ si elle se trouve au début de l'ensemble, elle est négative; si elle se trouve à l'extérieur de l'ensemble, elle correspond au début de la chaîne.[^0-9] et ^[Différence entre 0 et 9]

  • Utilisation du mode multi-lignes

    Cependant, il est possible d'activer le mode multiline {{?m}}. En mode multiline, le moteur d'expression régulière utilise les virgules comme séparateurs de chaînes. ^ correspond au début du texte ou au début d'une ligne, tandis que $ peut correspondre à la fin du texte ou à la fin d'une ligne.

    Modifiez l'exemple précédent:

    Expression régulière:[0-9a-zA-Z]{4,}$

    Texte à faire correspondre:
    +a1b23=4ABC
    ABC123456

    Résultats après match:a1b234ABC
    +a1b23=4ABC
    ABC123456
    Pour les analyses:[0-9a-zA-Z]{4,}$ correspond à une chaîne de caractères de quatre chiffres ou de lettres par ligne et dont le nombre de chiffres est supérieur ou égal à quatre chiffres.

    Remarque: si vous utilisez le mode multiligne, le signe [?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 en charge le début de la chaîne de correspondance \A et la fin de la chaîne de correspondance \Z. Si elles sont prises en charge, ces métadonnées ont la même fonction que ^, $.

Ce premier article traite des bases, puis vous pourrez lire l'article suivant sur l'apprentissage systématique de l'expression régulière ((ii): l'article progressif <unk>。

Le film a été réalisé par le cinéaste japonais Yoshihiro Takahata.

Related Recommendations
Comment
All comments (0)
No data
No data
  • 1
Forums
PINE Language
Get the app
iPhone Download
© 2015 - ∞ INVENTOR PTE LTD (SG)