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)

不言
Libérer: 2019-02-11 10:33:55
avant
2076 Les gens l'ont consulté

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
Copier après la connexion

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函数是
从字符串开始位置开始匹配,因为从开始位置没有匹配到,所以为空
Copier après la connexion
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']
Copier après la connexion
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']
Copier après la connexion
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
Copier après la connexion
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'
Copier après la connexion

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

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!

Étiquettes associées:
source:segmentfault.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal