Maison >développement back-end >Tutoriel Python >Introduction aux expressions régulières Python et à la bibliothèque (exemples de code)

Introduction aux expressions régulières Python et à la bibliothèque (exemples de code)

不言
不言avant
2019-02-11 10:33:552076parcourir

Cet article vous apporte une introduction (exemple de code) sur les expressions régulières Python et la bibliothèque. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Une expression régulière est une séquence de caractères qui définit un modèle de recherche. Généralement, ce modèle est utilisé par les algorithmes de recherche de chaînes pour les opérations de « recherche » ou « rechercher et remplacer » sur les chaînes, ou pour la validation des entrées.

1. Syntaxe d'expression régulière

  • Représente n'importe quel caractère unique

  • [] Jeu de caractères. , donnant une plage de valeurs pour un seul caractère

  • [^] Jeu de non-caractères, donnant une plage d'exclusion pour un seul caractère

  • * Le caractère précédent est développé 0 fois ou à l'infini

  • + le caractère précédent est développé 1 fois ou à l'infini

  • ?Le caractère précédent est développé 0 fois fois ou 1 extension

  • |L'une des expressions gauche et droite

  • {m} développe le caractère précédent m fois

  • {m,n} développe le caractère précédent m à n fois

  • ^ correspond au début de la chaîne

  • $ correspond à la marque de regroupement de fin de chaîne

  • (), seuls les nombres de l'opérateur |

  • d peuvent être utilisés en interne, ce qui est équivalent à [0-9]

  • w caractère de mot, équivalent à [A-Z,a-z,0-9]

2. Utilisation de la bibliothèque re en python

La bibliothèque Re est la bibliothèque standard de Python, principalement utilisée pour la correspondance de chaînes. La méthode d'appel : import re

Type de chaîne d'expression régulière<.>

re La bibliothèque utilise le type de chaîne brute pour représenter les expressions régulières, qui s'exprime comme


r'text'la chaîne brute est une chaîne qui ne contient plus de caractères d'échappement , en bref, String échappera les caractères, mais pas la chaîne brute, car les symboles d'échappement apparaîtront dans les expressions régulières, donc pour éviter l'ennui, nous utilisons la chaîne brute

2.2 Fonctions principales de la bibliothèque Re

  • re.search

    () recherche la première position de l'expression régulière dans une chaîne et renvoie l'objet de correspondance

  • re .match()

    Correspond à une expression régulière à partir du début d'une chaîne et renvoie un objet de correspondance

  • re.findall()

    Chaîne de recherche, renvoie tout correspondance des sous-chaînes dans le type de liste

  • re.split()

    Divise une chaîne en fonction du résultat de correspondance de l'expression régulière et renvoie le type de liste

  • re.finditer()

    Recherche une chaîne et renvoie un type d'itération de résultats correspondants. Chaque élément d'itération est un objet de correspondance

  • re. sub()

    Remplacez toutes les sous-chaînes correspondant à l'expression régulière dans une chaîne et renvoyez la chaîne remplacée

  • 2.2. re.search(pattern, string, flags=0)

Recherchez la première position de l'expression régulière dans une chaîne et renvoyez l'objet de correspondance

    modèle : la chaîne ou la représentation sous forme de chaîne native de l'expression régulière
  • string : la chaîne à rechercher
  • flags : lorsque l'expression régulière est utilisée La balise de contrôle
  • re.I re.IGNORECASE ignore la casse de l'expression régulière, [A‐Z] peut correspondre aux caractères minuscules
  • re.M re.MULTILINE L'opérateur ^ dans les expressions régulières peut démarrer chaque ligne d'une chaîne donnée comme correspondance
  • re.S re.DOTALL dans les expressions régulières L'opérateur peut faire correspondre tous les caractères, et par défaut correspond à tous les caractères sauf les nouvelles lignes
  • Exemple :

2.2.2 re.match(pattern, string , flags=0)
import re
match = re.search(r'[1-9]\d{5}', 'BIT 100081')
if match:
    print(match.group(0))

结果为100081

correspond à l'expression régulière du début d'un string et renvoie l'objet de correspondance.

les paramètres sont les mêmes que la fonction de recherche

Exemple :

2.2 .3. 🎜>
import re
match = re.match(r'[1-9]\d{5}', 'BIT 100081')
print(match.group(0))

结果会报错,match为空,因为match函数是
从字符串开始位置开始匹配,因为从开始位置没有匹配到,所以为空
Recherchez une chaîne et renvoyez toutes les sous-chaînes correspondantes dans le type de liste

Les paramètres sont les mêmes que la recherche

Exemple :



2.2.4 re.split(pattern, string, maxsplit=0, flags=0)

import re
ls=re.findall(r'[1-9]\d{5}', 'BIT100081 TSU100084')
print(ls)

结果为['100081', '100084']
Diviser une chaîne en fonction du résultat de la correspondance de l'expression régulière et renvoyer le type de liste

maxsplit : le nombre maximum de divisions , la partie restante est affichée comme dernier élément
  • Exemple :

2.2.5 re.finditer(pattern, string, maxsplit=0, flags. =0)

import re
re.split(r'[1-9]\d{5}', 'BIT100081 TSU100084')
结果['BIT', ' TSU', ' ']
re.split(r'[1-9]\d{5}', 'BIT100081 TSU100084', maxsplit=1)
结果['BIT', ' TSU100081']
Recherchez une chaîne et renvoyez un type d'itération de résultats correspondants. Chaque élément d'itération est un objet de correspondance

Les paramètres sont les mêmes que ceux de la recherche

Exemple :



2.2.6. re.sub(pattern, repl, string, count=0, flags=0)

import re
for m in re.finditer(r'[1-9]\d{5}', 'BIT100081 TSU100084'):
    if m:
        print(m.group(0))
结果为
100081
100084
Remplacer toutes les expressions régulières correspondantes dans une chaîne La sous-chaîne de la formule renvoie la chaîne remplacée

repl : Remplacer la chaîne correspondante par la chaîne
  • count : Le nombre maximum de remplacements correspondants
  • Exemple :

2.3 Une autre utilisation équivalente de la bibliothèque Re (orientée objet)

import re
re.sub(r'[1-9]\d{5}', ':zipcode', 'BIT100081 TSU100084')
结果为
'BIT:zipcode TSU:zipcode'

regex=re.complie(pattern,flags=0)
rst=re.search(r'[1-9]\d{5}', 'BIT 100081')
函数式的调用,一次性操作
regex a également les six utilisations ci-dessus
pat=re.compile(r'[1-9]\d{5}')
rst=pat.search('BIT 100081')
编译后多次操作

2.4 Objet de correspondance de la bibliothèque Re

L'objet de correspondance est le résultat d'une correspondance, y compris des correspondances Beaucoup d'informations

Voici les propriétés de l'objet Match

.string Le texte à faire correspondre
  • .re Objet Patter (expression régulière) utilisé lors de la correspondance
  • .pos La position de départ du texte de recherche d'expression régulière

  • .endpos La position de fin du texte de recherche d'expression régulière

Voici les méthodes de l'objet Match

  • .group(0) pour obtenir la chaîne correspondante

  • .start() correspond à la chaîne au début de la chaîne d'origine

  • .end() correspond à la chaîne à la fin de la chaîne d'origine

  • .span() renvoie (.start(), .end())

2.5 Correspondance gourmande et correspondance minimale de la bibliothèque Re

Lorsqu'une expression régulière peut correspondre à plusieurs éléments de longueurs différentes, lequel est renvoyé ? La bibliothèque Re utilise la correspondance gourmande par défaut, c'est-à-dire qu'elle renvoie la sous-chaîne correspondante la plus longue

la plus petite correspondance

  • *? avant Un caractère est développé 0 fois ou à l'infini, la correspondance minimale est

  • + Le caractère précédent est développé 1 fois ou à l'infini, la correspondance minimale est

  • ? Développez le caractère précédent 0 ou 1 fois, la correspondance minimale est

  • {m,n} ? ), la correspondance minimale est

Tant que la longueur de sortie peut être différente, vous pouvez ajouter ? après l'opérateur pour devenir la correspondance minimale

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

Articles Liés

Voir plus