Répertoire d'articles
Veuillez signaler qu'il y a une erreur, elle est en cours de modification ...
Les bases de l'utilisation régulière en python
L'utilisation de modificateurs réguliers
paramètres python dans le flag
paramètre représentant le modificateur régulier.
Établir une pluralité de modificateurs d'expression régulière configuration d'adaptation: re.I | re.M
.
Modificateur | la description |
---|---|
re.I | Rendre le match insensible à la casse |
re.L | Faire une correspondance sensible aux paramètres régionaux |
re.M | Correspondance multiligne, affecte ^ et $ |
re.S | Faire. Faire correspondre tous les caractères, y compris les sauts de ligne |
re.U | Analysez les caractères en fonction du jeu de caractères Unicode. Cet indicateur affecte \ w, \ W, \ b, \ B. |
re.X | Cet indicateur vous permet d'écrire plus facilement des expressions régulières en vous offrant une mise en forme plus flexible. |
Références arrière en python
- Backquote: barre oblique inverse et nombre (\ N)
(?<name>exp)
Faites correspondre exp et capturez le texte dans le groupe nommé name, qui peut également être écrit sous la forme(?'name'exp)
.
Mais en Python, pour(?P<name>exp)
.
- Utilisez ultérieurement
group(1)
ougroup(name)
obtenez l'expression de correspondance des métadonnées de contenu.
> Il y a une question sur les backreferences invalides
Remarque : les références arrière doivent préfixer r, sinon elles seront confondues avec des nombres binaires Python: par exemple, \1
la signification réelle devient\x01
Exigences: une seule chaîne de correspondance
re.match()
fonction
En python match()
, cette chaîne doit commencer par cette expression régulière , [vérifier si le début de la chaîne est correct]. Si le début de la chaîne est différent, la correspondance échoue et retourne none
. (C'est ce que disent de nombreux articles "Vérifier si RE correspond au début de la chaîne")
re.search()
fonction
search()
C'est une correspondance partielle dans la chaîne entière , [y a-t-il quelque chose comme ça dans la chaîne]. Il est à noter qu'un search()
seul match
re.fullmatch()
fonction
fullmatch()
: La chaîne correspond complètement à la normale et la chaîne correspond complètement à la normale [Vérifiez si cette chaîne est ce que nous voulons]
Exigences: recherche en texte intégral et chaîne de remplacement
re.sub()
fonction
Les besoins de base à utiliser replace()
, bien sûr, le module re est mentionné ici, et des remplacements complexes doivent être utilisés re.sub()
. Il remplacera toutes les correspondances dans la chaîne.
substitut
n .: 代者
;
re.sub(pattern, repl, string, count=0, flags=0)
pattern
: Expression régulière
repl
: La chaîne à remplacer, qui peut être une fonction
string
: Chaîne source
count
: Le nombre minimum de fois à remplacer
flag
: Le mode de correspondance de l'expression régulière ( n'oubliez pas de ne pas la définir sur count, il faut l'écrire flags=xxx
)
Modificateurs Regex - Drapeaux facultatifs | Tutoriel pour débutants
# 将“\n3.”等换为“【3】”
oriStr = '\n3.这是第三点'
resStr = re.sub(r'\n(\d+)\.', r'\n【\1】', oriStr)
print(resStr)
[3] Ceci est le troisième point
Exigences: recherche de texte intégral correspondant à la chaîne
re.findall()
Et re.finditer()
fonction
re.findall()
Pour renvoyer une liste de toutes les correspondances
re.findall(pattern, string, flags=0)
pattern.findall(string[, pos[, endpos]])
import re
result1 = re.findall(r'\d+','runoob 123 google 456')
pattern = re.compile(r'\d+') # 查找数字
result2 = pattern.findall('runoob 123 google 456')
result3 = pattern.findall('run88oob123google456', 0, 10)
print(result1)
print(result2)
print(result3)
Résultat de sortie:
["123", "456"]
["123", "456"]
["88", "12"]
re.finditer()
, Qui renvoie un itérateur de toutes les correspondances
re.finditer(pattern, string, flags=0)
import re
it = re.finditer(r"\d+","12a32bc43jf3")
for match in it:
print (match.group())
12
32
43
3
Exigences: diviser une chaîne avec des caractères correspondants
re.split()
fonction
Utilisez la chaîne correspondante comme caractères séparés et renvoyez la liste avec la chaîne divisée
re.split(pattern, string[, maxsplit=0, flags=0])
>>>import re
>>> re.split('\W+', 'runoob, runoob, runoob.')
['runoob', 'runoob', 'runoob', '']
>>> re.split('(\W+)', ' runoob, runoob, runoob.') # 小括号表示保留这个分隔者
['', ' ', 'runoob', ', ', 'runoob', ', ', 'runoob', '.', ''
Cet article référence: Expressions régulières Python3 | Tutoriel Rookie