Maison > développement back-end > Tutoriel Python > Notes sur les expressions régulières Python

Notes sur les expressions régulières Python

coldplay.xixi
Libérer: 2021-02-01 17:58:34
avant
1868 Les gens l'ont consulté

Notes sur les expressions régulières Python

Répertoire d'articles

  • 0. Préface
  • 1. . Modificateurs d'expression régulière - indicateurs facultatifs
  • 2.1, `re.IGNORECASE`(`re.I`)
    • 2.2, `re.ASCII` (`re. A`)
    • 2.3, `re.DOTALL` (`re.S`)
    • 2.4, `re.MULTILINE`(`re.M`)
    • 2.5 , `re.VERBOSE`(re. >
    • 3.1. Fonction pour trouver une seule correspondance
    Exemple 3.1.1
  • Exemple 3.1.2
  • Exemple 3.1. 3
    • 3.2. Fonction pour trouver plusieurs éléments correspondants
      • Exemple 3.2.1
      3.3. Split
    • Exemple 3.3.1
    • import re
      Copier après la connexion
    • 0. Préface
      • Cette note est basée sur le tutoriel novice et le tutoriel Zhihu, et intègre certaines de mes propres expériences d'apprentissage.
    1. Modèle d'expression réguliè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 Notes sur les expressions régulières Python


2.1, Notes sur les expressions régulières Python(

)

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

fonctions pour ignorer la casse des caractères

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))
Copier après la connexion
re.findall
N.B.re.findall(pattern, string, flag=0) se voit attribuer une patternr 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 0
Copier après la connexion
Par 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

2.2,

()

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

re.A2.3,
(Notes sur les expressions régulières Python)
re.A

En mode expression régulière,

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

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
Copier après la connexion
re.S2.4,

(

).Notes sur les expressions régulières Python

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

pour la modifier, ce qui est le mode multi-ligne.

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))
Copier après la connexion
rrreere.MULTILINE2.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 0
Copier après la connexion
rrreere.M2.6. Superposition de modificateurs

re.VERBOSEUtilisez pour superposer des modifications.

text = '朋友们好啊!我是xxxxxx拳掌门人xxx~'pattern = r'''朋友们  # 主语
              好啊!  # 谓语
           '''print(re.findall(pattern, text,re.VERBOSE))
Copier après la connexion
rrree

3. Fonction d'expression régulière patterntexttext3.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!

Étiquettes associées:
source:csdn.net
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