Re bibliothèques, et des expressions régulières - Python

Notes d' étude personnelle
site vidéo: https://www.bilibili.com/video/av9784617?p=39

① expressions régulières 1

Les expressions régulières
Photos de: parquez un blog blogger ...

② Re bibliothèque

A. Expression régulière indique le type de


  • type de chaîne brute (chaîne de type natif)

    re bibliothèque d'expression en utilisant le type de chaîne brute expression régulière, exprimée: r'text'
    Par exemple: la r'[1-9]\d{5}
    chaîne brute est une chaîne qui ne contient pas de fuite

  • type de chaîne

    Nous devons utiliser les caractères spéciaux d'échappement
    tels que:'[1-9]\\d{5}'
    '\\d{3}-\\d{8}|\\d{4}-\\d{7}'

II. La fonction principale de la fonction bibliothèque Re


fonction explication
recherche() Dans la recherche d'une chaîne correspondante dans la première position de l'expression régulière, retourne l'objet match
re.match () Faites correspondre l'expression régulière de la position de début d'une chaîne de caractères, les retours correspondent objet
re.findall () La chaîne de recherche, retourner un type de liste peut correspondre à tous les sous-chaînes de
re.split () La chaîne est divisée conformément à un résultat de mise en correspondance d'expression régulière, retourne une liste de types
re.finditer () Chaîne de recherche, le retour d'un résultat de mise en correspondance du type itératif, chaque élément est un objet de correspondance itération
re.sub () Chaîne remplace toutes les sous-chaîne correspond à l'expression régulière dans une chaîne, après le remplacement des retours

2,1 re.search (motif, chaîne, drapeaux = 0)


  • Dans une recherche de la chaîne correspond à la première expression régulière d'une position, retourne le match d'objet.
    • motif: une chaîne ou une représentation de chaîne d'expression régulière de natif
    • chaîne: chaîne à faire correspondre
    • marque de contrôle utilisant des expressions régulières: drapeaux
marqueurs communs explication
re.I re.IGNORECASE Ignorer l'expression régulière insensible à la casse, [AZ] capable de faire correspondre les caractères minuscules
RE.M re.MULTILINE Chaque ligne de l'opérateur expression régulière ^ peut être donné comme une chaîne de caractères correspondant au début
re.S re.DOTALL Expression régulière. opérateur capable de faire correspondre tous les caractères, par défaut correspond à tous les caractères sauf nouvelle ligne

match findall, les paramètres de la fonction de recherche est les mêmes paramètres de référence pour rechercher finditer

2,2 re.split (motif, chaîne, maxsplit = 0, drapeaux = 0)


  • La chaîne selon une expression régulière correspond à Split, retourne une liste de types.
    • motif: une chaîne ou une représentation de chaîne d'expression régulière de natif
    • chaîne: chaîne à faire correspondre
    • maxsplit: Le nombre maximal de division, la partie restante de la sortie comme le dernier élément
    • marque de contrôle utilisant des expressions régulières: drapeaux

2.3 re.sub (modèle, rempl, chaîne, nombre = 0, drapeaux = 0)


  • Chaîne remplace toutes les sous-chaîne correspond à l'expression régulière dans une chaîne, après le remplacement des retours
    • motif: une chaîne ou une représentation de chaîne d'expression régulière de natif
    • Rempl: matchs de chaîne de remplacement de chaîne
    • chaîne: chaîne à faire correspondre
    • Remettez en place le plus grand nombre de matches: compter
    • marque de contrôle utilisant des expressions régulières: drapeaux

2.4 Exemple


import re

# re.search: 在一个字符串中搜索匹配正则表达式的第一个位置
match = re.search(r'[1-9]\d{5}', 'BIT 100032 132103 12043')
if match:
    print(match.group(0))
# 结果: 100032

print(match)
# 结果: <re.Match object; span=(4, 10), match='100032'>

# re.match: 从一个字符串的开始位置起匹配正则表达式
# 开始与正则表达式不匹配的话, 则为None
match = re.match(r'[1-9]\d{5}', '123042BIT 100032 132103 12043')
if match:
    print(match.group(0))
# 结果: 123042

# re.findall: 搜索字符串, 以列表类型返回全不能匹配的子串
match = re.findall(r'[1-9]\d{5}', '123042BIT 100032 SUV132103 12043')
if match:
    print(match)
# 结果: ['123042', '100032', '132103']

# re.split: 将一个字符串按照正则表达式匹配结果进行分割, 返回列表类型.
match = re.split(r'[1-9]\d{5}', '123042BIT 100032 SUV132103 120413')
if match:
    print(match)
# 结果:['', 'BIT ', ' SUV', ' ', '']
# 结果分析: 123042符合,则字符串开头开始分割即'',
#     然后就是'BIT ', 100032符合,继续分割, ' SUV'
#   132103符合,分割' ', 120413符合,后面一个''(空字符串)

# maxsplit=1, 只匹配1个, 后面的字符串作为一个元素输出
match = re.split(r'[1-9]\d{5}', '123042BIT 100032 SUV132103 120413', maxsplit=1)
if match:
    print(match)
# 结果: ['', 'BIT 100032 SUV132103 120413']

print(re.sub(r'[1-9]\d{5}', ':zipcode', 'BIT102435 TSU104394'))
# 结果: BIT:zipcode TSU:zipcode

2,5 re.compile (motif, drapeaux = 0)


  • Compile une chaîne dans une expression régulière objet expression régulière
    • motif: une chaîne ou une représentation de chaîne d'expression régulière de natif
    • marque de contrôle utilisant des expressions régulières: drapeaux

Utilisation fonctionnelle: opération unique:
rst = re.search(r'[1-9]\d{5}', 'BIS 102384')

équivalent à

utilisation orientée objet: BUILD multiples opérations:
pat = re.compile(r'[1-9]\d{5}')
rst = pat.search('BiS 102384')

Insérer ici l'image Description

Trois. Objets Re match bibliothèque


3.1 Attributs d'objets match


propriété explication
.chaîne Texte à apparier
.ré modèle correspondant utilisé lorsque l'objet (expressions régulières)
.pos Recherche d'expression régulière texte position de départ
.endpos Recherche d'expression régulière position de fin de texte

Méthodes 3.2 objet match


méthode explication
.group (0) chaîne de correspondance est obtenue
.début() chaîne correspondant à la position de départ de la chaîne d'origine
.fin() position de fin de chaîne correspondante de la chaîne d'origine
.envergure() Retour (.start (), .end ())

4. Match gourmand


Re bibliothèque défaut gourmand en jeu, à savoir la sortie de la plus longue sous-chaîne correspondante

match = re.search(r'PY.*N', 'PYKSJDFNN')
match.group(0)
# 结果: PYKSJDFNN

Comment devenir un match minimum


Les opérateurs explication
*? Caractère précédent 0 fois ou un nombre illimité d'extensions, le match minimum
+? 1 caractère précédent ou l'extension illimitée, le match minimum
?? caractère précédent poste 0 ou 1, la mise en correspondance minimum
{M, n}? Un caractère d'extension avant m à n fois (y compris n), l'adaptation d'au moins

[Extensions]
Python Reptile atteindre les prix des matières premières Taobao rampants - demande + re

Voir la mise en œuvre spécifique: [apprentissage] Python Reptile sept prix des matières premières Taobao ramper (ramper succès)

Convertir la syntaxe de boucle à Python, URI Ansible, Node.js, R, PHP, Strest, Go, Dart, JSON, Elixir, Rust


  1. - Expressions régulières - Syntaxe - tutoriel rookie
    - test d'expression régulière en ligne
    - Collection Expressions - Open Source Chine
    - probablement les meilleures notes de tutoriel d'expression régulière , il ... ↩︎

Il a publié 190 articles originaux · louange 153 won · vues 90000 +

Je suppose que tu aimes

Origine blog.csdn.net/qq_36852780/article/details/104370260
conseillé
Classement