Maison  >  Article  >  développement back-end  >  Le principe de base consiste à utiliser une série de caractères spéciaux et une syntaxe pour faire correspondre et manipuler les données textuelles. Une expression régulière se compose généralement d'une chaîne de modèle qui décrit un modèle de texte à mettre en correspondance, ainsi que d'un ou plusieurs caractères spéciaux et d'une syntaxe qui contrôlent comment et quel est le résultat. Les expressions régulières en Python sont généralement implémentées à l'aide du module re

Le principe de base consiste à utiliser une série de caractères spéciaux et une syntaxe pour faire correspondre et manipuler les données textuelles. Une expression régulière se compose généralement d'une chaîne de modèle qui décrit un modèle de texte à mettre en correspondance, ainsi que d'un ou plusieurs caractères spéciaux et d'une syntaxe qui contrôlent comment et quel est le résultat. Les expressions régulières en Python sont généralement implémentées à l'aide du module re

WBOY
WBOYavant
2023-05-10 09:40:141288parcourir

    Qu'est-ce qu'une expression régulière ?

    Expression régulière, également connue sous le nom d'expression régulière, (anglais : Regular Expression, souvent abrégée en regex, regexp ou RE dans le code), c'est un concept en informatique. Les expressions régulières sont souvent utilisées pour récupérer et remplacer du texte qui correspond à un certain modèle. De nombreux langages de programmation prennent en charge la manipulation de chaînes à l'aide d'expressions régulières. Par exemple, Perl intègre un puissant moteur d’expressions régulières. Le concept d’expressions régulières a été popularisé à l’origine par des logiciels-outils sous Unix. Une expression régulière est une formule logique qui opère sur des chaînes (y compris des caractères ordinaires (par exemple, les lettres entre a à z) et des caractères spéciaux (appelés « métacaractères »)), qui utilise certains caractères spécifiques prédéfinis, et la combinaison de ces caractères spécifiques. les caractères forment une "chaîne de règle". Cette "chaîne de règle" est utilisée pour exprimer une logique de filtrage des chaînes. Une expression régulière est un modèle de texte qui décrit une ou plusieurs chaînes à rechercher lors de la recherche de texte.

    1. Présentation des exemples

    J'ai dit beaucoup de bêtises, et tout le monde peut encore être confus. Illustrons cela à travers des exemples. Nous pouvons utiliser des outils de test d'expressions régulières ou Python. Tout d'abord, nous saisissons un texte de paragraphe.

    bonjour, je m'appelle Tina, mon numéro de téléphone est le 123456 et mon site Web est http://tina.com.

                                   [a-zA-z]+://[^\s]*

    Nous pouvons obtenir le lien Web, qui est l'url dans le texte, n'est-ce pas incroyable?

    C'est parce qu'il a ses propres règles de correspondance, dont certaines sont les suivantes.

    Motif Description
    . Tout personnage
    * 0 expressions ou plus
    + Une ou plusieurs expressions

    Vous pouvez vérifier plus de correspondance règles par vous-même.

    ?,*,+,d,w sont tous des caractères équivalents

    équivaut à la longueur correspondante {0,1}

    * équivaut à la longueur correspondante {0,}

    + équivaut à la longueur correspondante {1,}

    d équivaut à [0-9]

    D équivaut à [^0-9]

    w équivaut à [A - Za-Z_0-9]

    W est équivalent à [^a-Za-Z_0-9]

    2.match ()

    Ici, j'introduis une méthode de correspondance couramment utilisée & mdash & mdash; () , en lui passant la chaîne à rechercher et l'expression régulière, vous pouvez vérifier si l'expression régulière correspond à la chaîne.

    Matching target

    res = re.match('hello\s(\d+)sword')

    Greedy matching

    res = re.match('hello.*(\d+)sword')

    3.findall()

    C'est ce que nous utilisons le plus, voyons comment cela est utilisé.

    import re
     
    useData = str(input('请输入字符串数据:'))
     
    '''
    匹配字符串中的数字,+是匹配前面的子表达式一次或多次
    '''
    digital = re.findall('\d+',useData)
     
    print(digital)

    Jetons un coup d'œil aux résultats en cours d'exécution

    Le principe de base consiste à utiliser une série de caractères spéciaux et une syntaxe pour faire correspondre et manipuler les données textuelles. Une expression régulière se compose généralement dune chaîne de modèle qui décrit un modèle de texte à mettre en correspondance, ainsi que dun ou plusieurs caractères spéciaux et dune syntaxe qui contrôlent comment et quel est le résultat. Les expressions régulières en Python sont généralement implémentées à laide du module re

    La fonction findall() renvoie toutes les chaînes correspondantes et le type de données de la valeur de retour est une liste.

    Symboles communs

    Parlons des symboles communs des expressions régulières.

    Le caractère "." correspond à n'importe quel caractère.

    Le caractère "" est un caractère d'échappement.

    "[…]" est le jeu de caractères.

    "(.*?)" est le caractère le plus couramment utilisé dans les robots d'exploration Python. Il s'appelle un algorithme glouton et peut correspondre à n'importe quel caractère.

    Regardons un exemple de code ci-dessous.

    import re
     
    a=‘xxixxjshdxxlovexxsfhxxpythonxx'
     
    data=re.findall(‘xx(.*?)xx')
     
    print(data)

    Exécutons-le et voyons l'effet. "Résultats d'exécution" Cela signifie que cela signifie n'importe quelle chaîne. Si vous souhaitez trouver le symbole * dans une chaîne, vous devez échapper au *, c'est-à-dire ajouter un avant, runo*ob correspond à la chaîne runo*ob.

    De nombreux métacaractères nécessitent un traitement spécial lorsqu'on essaie de les faire correspondre. Pour faire correspondre ces caractères spéciaux, vous devez d'abord "échapper" aux caractères, c'est-à-dire les faire précéder d'une barre oblique inverse. Le tableau suivant répertorie les caractères spéciaux dans les expressions régulières :


    Caractère spécial

    Description

    $() marque le début et la fin d'une sous-expression. Les sous-expressions peuvent être obtenues pour une utilisation ultérieure. Pour faire correspondre ces caractères, utilisez ( et ). * Correspond à la sous-expression précédente zéro ou plusieurs fois. Pour faire correspondre le caractère *, utilisez *. + correspond à la sous-expression précédente une ou plusieurs fois. Pour faire correspondre le caractère +, utilisez +. . correspond à n'importe quel caractère à l'exception du caractère de nouvelle ligne n. Pour faire correspondre , utilisez .

     概念说了一大堆,大家可能也记不住,我直接说几个案例,大家就能明白其他的道理。

    这是某网的HTML,部分片段如下:

    <span class=“price”>§<i>123</i></span>
     
    <span class=“price”>§<i>133</i></span>
     
    <span class=“price”>§<i>156</i></span>
     
    <span class=“price”>§<i>189</i></span>

       大家会发现只有中间的一段不一样,而不一样的数据就是我们想要的,我们怎么用正则表达式提取出来呢.

    <span class=“price”>§<i>(.*?)</i></span>

    就可以了,我们看看效果吧。

    123
    133
    156
    189

    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 également à «n’ ou «r’. Pour faire correspondre le caractère $ lui-même, utilisez $.

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Déclaration:
    Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer