Maison >développement back-end >Tutoriel Python >Notes sur les expressions régulières Python
Répertoire d'articles
import re
Les points forts sont mes ajouts, car ils peuvent en effet être assortis en fonction de la situation réelle
J'étais un peu paresseux ici et je viens de prendre une capture d'écran du tutoriel novice.
2. Modificateur d'expression régulière - indicateur facultatif
2.1, (
Bien que la section 1 est une constante, il faut d'abord mentionner brièvement cette fonction, puisque c'est la fonction utilisée tout au long de cette section.
: recherchez n'importe où dans la chaîne et renvoie une liste. est le caractère (chaîne) à rechercher, est la source de recherche, re.IGNORECASE
est le modificateur, la valeur par défaut est 0re.I
text = "I'm Jasmine-Feng. My student number is No. 321432"pattern = r"Jasmine-FENG"print('Default: ', re.findall(pattern,text))print('Ignore upper/lower case: ', re.findall(pattern,text,flags=re.I))
re.findall
re.findall(pattern, string, flag=0)
se voit attribuer une pattern
r stringstring
La fonction de cette r string est d'éviter de s'échapper r est l'abréviation de raw, ce qui signifie de la garder telle quelle. . Voir cet article de blog. De manière générale, cette chaîne r sera utilisée lors de l'utilisation d'expressions régulières. flag
Default: []Ignore upper/lower case: ['Jasmine-Feng']Process finished with exit code 0Par défaut, il est sensible à la casse et ENG ne peut pas être trouvé ; s'il n'est pas distingué, eng peut être trouvé ;
re.I
()
doit correspondre uniquement aux caractères pris en charge par le code ASCII, alors à quels caractères fait-il spécifiquement référence ? L'image ci-dessous provient de l'Encyclopédie Baidu. Les caractères chinois ne sont pas inclus, donc si le modificateur est , il ne correspondra pas aux caractères chinois ~re.ASCII
text = "我是Jasmine-Feng. 我的学号是No. 321432"pattern = r"\w+"print('Default: ', re.findall(pattern,text))print('ASCII: ', re.findall(pattern,text,flags=re.A))
re.A
est utilisé pour correspondre à un ou plusieurs Caractères chinois soulignés alphanumériques
Default: ['我是Jasmine', 'Feng', '我的学号是No', '321432']ASCII: ['Jasmine', 'Feng', 'No', '321432']Process finished with exit code 0
re.A
2.3,
()re.A
est utilisé pour w+
text = "我\t是Jasmine-F\neng. 我%的◉学号是No. 321432"pattern = r'.*'print('Default: ', re.findall(pattern,text))print('DOTALL: ', re.findall(pattern,text,re.S))
est utilisé pour faire correspondre des caractères (chaînes) d'une longueur d'au moins 0, emmm, cela semble absurde ? En fait, tant que le paragraphe entier n'est pas tronqué par un caractère de nouvelle ligne, vous pouvez obtenir la chaîne entière (plus une chaîne vide). re.DOTALL
Default: ['我\t是Jasmine-F', '', 'eng. 我%的◉学号是No. 321432', '']DOTALL: ['我\t是Jasmine-F\neng. 我%的◉学号是No. 321432', '']Process finished with exit code 0
re.S
2.4,
).
correspond à la fin de la chaîne, .*
correspond au début de la chaîne , par défaut Ci-dessous, si vous coupez une ligne, vous ne pouvez pas localiser le début/la fin de la nouvelle ligne, mais vous pouvez utiliser
text = "我\t是Jasmine-F\neng. 我%的◉\n学号是No. 321432"pattern = r'.$'pattern2 = r'^.'print('Default, end: ', re.findall(pattern, text))print('MULTILINE, end: ', re.findall(pattern, text, re.M))print('Default, start: ', re.findall(pattern2, text))print('MULTILINE, start: ', re.findall(pattern2, text, re.M))rrree
re.MULTILINE
2.5, re.M
(re. Ajouter des commentaires à l'expression . Notez que vous l'ajoutez à , pas à ! Au début, je pensais pouvoir ajouter des commentaires à $
, mais je n'ai pas pu obtenir le résultat après un long débogage. . . ^
Default, end: ['2']MULTILINE, end: ['F', '◉', '2']Default, start: ['我']MULTILINE, start: ['我', 'e', '学']Process finished with exit code 0rrree
re.M
2.6. Superposition de modificateurs re.VERBOSE
Utilisez pour superposer des modifications.
text = '朋友们好啊!我是xxxxxx拳掌门人xxx~'pattern = r'''朋友们 # 主语 好啊! # 谓语 '''print(re.findall(pattern, text,re.VERBOSE))rrree
3. Fonction d'expression régulière pattern
text
text
3.1 Fonction pour trouver une seule correspondance
En fait, J'ai initialement écrit mon propre exemple, mais le navigateur l'a fermé par erreur et je ne l'ai pas enregistré (ma mentalité a immédiatement explosé)
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!