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
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
() recherche la première position de l'expression régulière dans une chaîne et renvoie l'objet de correspondance
Correspond à une expression régulière à partir du début d'une chaîne et renvoie un objet de correspondance
Chaîne de recherche, renvoie tout correspondance des sous-chaînes dans le type de liste
Divise une chaîne en fonction du résultat de correspondance de l'expression régulière et renvoie le type de liste
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
Remplacez toutes les sous-chaînes correspondant à l'expression régulière dans une chaîne et renvoyez la chaîne remplacée
import re match = re.search(r'[1-9]\d{5}', 'BIT 100081') if match: print(match.group(0)) 结果为100081
Exemple :
import re match = re.match(r'[1-9]\d{5}', 'BIT 100081') print(match.group(0)) 结果会报错,match为空,因为match函数是 从字符串开始位置开始匹配,因为从开始位置没有匹配到,所以为空
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']
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']
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
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'
rst=re.search(r'[1-9]\d{5}', 'BIT 100081') 函数式的调用,一次性操作
pat=re.compile(r'[1-9]\d{5}') rst=pat.search('BIT 100081') 编译后多次操作
2.4 Objet de correspondance de la bibliothèque Re
.string Le texte à faire correspondre
.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())
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!