Maison > Article > développement back-end > Quelles sont les manières d'utiliser le module re dans les expressions régulières python ? Introduction à l'utilisation du module re
Le contenu de cet article explique comment utiliser le module re dans les expressions régulières python ? L'introduction à l'utilisation du module re a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.
Les expressions régulières sont la méthode la plus couramment utilisée pour traiter les chaînes, et les expressions régulières peuvent être vues partout dans notre codage.
Les expressions régulières en python sont légèrement différentes de celles des autres langages :
1 Lors du remplacement d'une chaîne, la chaîne remplacée peut être une fonction
2 , la scission. La fonction peut spécifier le nombre de divisions, ce qui entraînera des pièges
3 L'expression définie dans l'élément précédent doit être d'une longueur fixe
Ce qui suit est une description détaillée de la façon de l'utiliser. le module re. En fait, notez Les trois différences mentionnées ci-dessus sont exactement les mêmes
1 match
Description :
re.match essaie. pour correspondre à partir du début de la chaîne. Si un modèle ne correspond pas correctement à la position de départ, match() renverra Aucun.
Syntaxe :
re.match(pattern, string, flags=0)
les drapeaux sont des drapeaux facultatifs, plusieurs drapeaux peuvent être obtenus par OU au niveau du bit (|) spécifié. Par exemple, re.I | re.M est défini sur les identifiants I et M :
|
Description | ||||||||||||||
re.I | re.L | Faire la localisation Identifier Correspondances (compatibles avec les paramètres régionaux) | |||||||||||||
re.M | Plusieurs lignes correspondantes, influence ^ et $ | ||||||||||||||
re.S | make Match inclut les sauts de ligne. Tous les caractères, y compris | ||||||||||||||
re.U | Analysé selon le jeu de caractères Unicode personnage. Ce drapeau affecte w, W, b, B. | ||||||||||||||
re. >Cet indicateur rend vos expressions régulières plus faciles à comprendre en vous offrant un format plus flexible. |
Si la correspondance réussit, la méthode re.match renvoie un objet correspondant. Vous pouvez utiliser la fonction d'objet correspondant group(num) ou groups() pour obtenir l'expression correspondante. group() ou group(0), renvoie le résultat correspondant à l'intégralité de l'expression régulière.
Exemple :
s= 'abc123abc' print(re.match('[a-z]+', s)) # <_sre.SRE_Match object; span=(0, 3), match='abc'> print(re.match('[a-z]+', s).group(0)) # abc print(re.match('[\d]+', s)) # None print(re.match('[A-Z]+', s, re.I).group(0)) # abc print(re.match('[a-z]+', s).span()) # (0, 3)
2. recherche
Instructions :
re.search scan La chaîne entière et renvoie la première correspondance réussie.
Syntaxe :
re.search(pattern, string, flags=0)
La méthode re.search renvoie un objet correspondant si la correspondance est réussie, sinon elle renvoie Aucun. Les expressions de correspondance peuvent être obtenues à l’aide des fonctions d’objet de correspondance group(num) ou groups().
Exemple :
s = 'abc123abc' print(re.search('[a-z]+', s).group()) # abc print(re.search('[a-z]+', s).span()) # (0, 3) print(re.search('[\d]+', s).group()) # 123 print(re.search('[\d]+', s).span()) # (3, 6) print(re.search('xyz', s)) # None
groupdict
groupdict renvoie un dictionnaire de tous les sous-groupes nommés correspondants.
print(re.search('[a-z]+', s).groupdict()) # {} print(re.search('(?P<letter>[a-z]+)(?P<num>\d+)', s).groupdict()) # {'num': '123', 'letter': 'abc'}
3, sub et subn
Explication :
re.sub est utilisé pour remplacer les éléments correspondants dans la chaîne.
re.subn renvoie un tuple contenant la chaîne remplacée et le nombre de remplacements.
Syntaxe :
sub(pattern, repl, string, count=0, flags=0)
repl : La chaîne à remplacer, ou cela peut être une fonction .
count : Le nombre maximum de substitutions après la correspondance de modèle. La valeur par défaut est 0, ce qui signifie remplacer toutes les correspondances.
Exemple :
s = 'abc123abc' print(re.sub('[\d]+', '数字', s)) # abc数字abc print(re.sub('[a-z]+', '字母', s, 1)) # 字母123abc # 将匹配的数字乘以 2 def double(matched): value = int(matched.group('value')) return str(value * 2) # repl是一个函数 print(re.sub('(?P<value>\d+)', double, s)) # abc246abc print(re.subn('[\d]+', '数字', s)) # ('abc数字abc', 1) print(re.subn('[a-z]+', '字母', s,)) # ('字母123字母', 2) print(re.subn('[a-z]+', '字母', s, 1)) # ('字母123字母', 1)
4. compiler
Instructions :
re.compile Utilisation Pour compiler une expression régulière, générez un objet d'expression régulière (Pattern) à utiliser par les fonctions match() et search().
Syntaxe :
compile(pattern, flags=0)
Exemple :
s = 'abc123abc' p = re.compile('[\d]+') print(p.match(s, 4, 5).group(0)) # 2 从位置4开始匹配到位置5 print(p.search(s).group(0)) # 123
5. findall
Description :
re.findall trouve toutes les sous-chaînes correspondant à l'expression régulière dans la chaîne et renvoie une liste si aucune correspondance n'est trouvée, elle renvoie une liste vide.
Syntaxe :
findall(pattern, string, flags=0)
Exemple :
s = 'abc123abc' print(re.findall('[a-z]+', s)) # ['abc', 'abc'] print(re.findall('[h-n]+', s)) # []
6. finditer
Description :
finditer est similaire à findall Il recherche toutes les sous-chaînes correspondant à l'expression régulière dans la chaîne et les renvoie en tant qu'itérateur.
Syntaxe :
finditer(pattern, string, flags=0)
Exemple :
s = 'abc123def' it = re.finditer('[a-z]+', s) for match in it: print(match.group())
7. split
Description : La méthode
re.split divise la chaîne en fonction des sous-chaînes correspondantes et renvoie une liste.
Syntaxe :
split(motif, chaîne, maxsplit=0, flags=0)
maxsplit : nombre de divisions, maxsplit=1 divisé une fois, la valeur par défaut est 0, non Limiter le nombre de fois.
Exemple :
print(re.split('a', '1A1a2A3', re.I)) # ['1A1', '2A3']# 输出结果并未能区分大小写,这是因为re.split(pattern,string,maxsplit, flags)默认是四个参数,当我们传入的三个参数的时候,系统会默认re.I是第三个参数,所以就没起作用。# 如果想让这里的re.I起作用,写成flags=re.I即可。 print(re.split('a', '1A1a2A3', flags=re.I)) # ['1', '1', '2', '3']
8. évasion
Explication :
re.escape Escape chaînes spéciales dans la chaîne.
Grammaire :
escape(pattern)
Exemple :
print(re.escape('www.dxy.cn')) # www\.dxy\.cn
9. >
«(?P8a11bc632ea32a57b3e3693c7987c420…)» : Regroupez-le et nommez-le 8a11bc632ea32a57b3e3693c7987c420. «(?P=name)» : fait référence à la chaîne correspondant au groupe dont l'alias est 8a11bc632ea32a57b3e3693c7987c420.10. Définition spéciale d'antécédent (négative)
La définition d'antécédent (?<=exp) et la définition d'antécédent négatif (?) sont couramment utilisées dans les expressions régulières. . <.>Recommandations associées :(?<=aaa) # 正确 (?<=aaa|bbb) # 正确 (?<=aaa|bb) # 错误 (?<=\d+) # 错误 (?<=\d{3}) # 正确A quoi sert le module de journalisation en python ? Introduction à l'utilisation du module de journalisationIntroduction détaillée à l'expression régulière ré du module python
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!