Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Einführung in reguläre Ausdrücke in Python

Detaillierte Einführung in reguläre Ausdrücke in Python

不言
不言nach vorne
2018-10-18 17:15:232596Durchsuche

Dieser Artikel bietet Ihnen eine detaillierte Einführung in reguläre Ausdrücke in Python. Ich hoffe, er wird Ihnen als Referenz dienen.

Regular

re = regulärer Ausdruck Das
re-Modul ermöglicht es der Python-Sprache, über alle regulären Ausdrucksfunktionen zu verfügen. Die
compile-Funktion generiert ein reguläres Ausdrucksobjekt basierend auf einer Musterzeichenfolge und optionalen Flag-Argumenten. Dieses Objekt verfügt über eine Reihe von Methoden zum Abgleichen und Ersetzen regulärer Ausdrücke.

Funktion: Bei der Verarbeitung einer Zeichenfolge wird überprüft, ob der Inhalt der Zeichenfolge mit dem von Ihnen geschriebenen regulären Ausdruck übereinstimmt.

Wenn er übereinstimmt, entfernen Sie den übereinstimmenden Inhalt.
Wenn er nicht übereinstimmt , ignoriere es. Übereinstimmender Inhalt;

Schreiben Sie reguläre Regeln

Muster, das mit einem regulären Ausdruck übereinstimmt
string Zu vergleichender String

Drei Suchmethoden

1). findall
import re

str = 'hello sheen,hello cute.'

pattern_1 = r'hello'
pattern_2 = r'sheen'
print(re.findall(pattern_1,str))    #['hello', 'hello']
print(re.findall(pattern_2,str))    #['sheen']
2).match

match versucht, einen Abgleich von der Startposition der Zeichenfolge durchzuführen,

  • Wenn die Startposition nicht erfolgreich abgeglichen wird, wird „None“ zurückgegeben;

  • Wenn die Startposition erfolgreich abgeglichen wurde, wird ein Objekt zurückgegeben;

import re

str = 'hello sheen,hello cute.'

pattern_1 = r'hello'
pattern_2 = r'sheen'
print(re.match(pattern_1,str))           #<_sre.sre_match>
print(re.match(pattern_1,str).group())   #返回match匹配的字符串内容,hello
print(re.match(pattern_2,str))           #None</_sre.sre_match>
3).search

Die Suche durchsucht die gesamte Zeichenfolge und gibt nur den ersten erfolgreich abgeglichenen Inhalt zurück;

  • Wenn es gefunden werden kann, geben Sie ein Objekt zurück und rufen Sie die entsprechende Zeichenfolge über die Gruppenmethode ab;

import re

str = 'hello sheen,hello cute.'

pattern_1 = r'hello'
pattern_2 = r'sheen'
print(re.search(pattern_1,str))             #<_sre.sre_match>
print(re.search(pattern_1,str).group())     #hello
print(re.search(pattern_2,str))             #<_sre.sre_match>
print(re.search(pattern_2,str).group())     #sheen</_sre.sre_match></_sre.sre_match>

Sonderzeichenklasse

.: entspricht jedem Zeichen außer [.n]
d: Ziffer--(Zahl), entspricht einem numerischen Zeichen, äquivalent zu [0-9]
D: entspricht einem nicht numerischen Zeichen , entspricht [^0-9]
s: Leerzeichen (allgemeines Leerzeichen: Leerzeichen, t, n, r), entspricht jedem einzelnen Leerzeichen;
S: entspricht allen außer einzelnen Leerzeichen;
w: alphanumerisch oder Unterstrich, [a-zA-Z0-9_]
W: außer alphanumerisch oder Unterstrich, [^a-zA-Z0-9_]

import re

# .
print(re.findall(r'.','sheen\nstar\n'))     #['s', 'h', 'e', 'e', 'n', 's', 't', 'a', 'r']

#\d#\D
print(re.findall(r'\d','当前声望30'))       #['3', '0']
print(re.findall(r'\D','当前声望30'))       #['当', '前', '声', '望']

#\s#\S
print(re.findall(r'\s', '\n当前\r声望\t为30'))     #['\n', '\r', '\t']
print(re.findall(r'\S', '\n当前\r声望\t为30'))     #['当', '前', '声', '望', '为', '3', '0']

#\w#\W
print(re.findall(r'\w','lucky超可爱!!'))           #['l', 'u', 'c', 'k', 'y', '超', '可', '爱']
print(re.findall(r'\W','lucky超可爱!!'))           #['!', '!']

Detaillierte Einführung in reguläre Ausdrücke in Python

Geben Sie die Häufigkeit des Vorkommens des Zeichens an

Die Häufigkeit des Vorkommens übereinstimmender Zeichen:

*: bedeutet, dass das vorherige Zeichen 0 Mal vorkommt oder unendlich oft; d*, .*+: stellt das vorherige Zeichen dar, das einmal oder unendlich oft vorkommt; d+
?: stellt das vorherige Zeichen dar, das 1 oder 0 Mal vorkommt; vorausgesetzt, dass einige Zeichen weggelassen werden können; kann die zweite Methode

verwenden, wenn sie nicht weggelassen wird:

{m}: Das vorherige Zeichen erscheint m-mal.

{m,}: Das vorherige Zeichen erscheint mindestens m-mal ; * == {0,}; + ==={1,}
{m,n}: Das vorherige Zeichen erscheint m-mal bis n-mal ? 🎜 >
Übung – Passende IP

Sie können im Internet nach Generatoren für reguläre Ausdrücke suchen, von anderen geschriebene Regeln verwenden und diese selbst testen.

import re

#* 代表前一个字符出现0次或者无限次
print(re.findall(r's*','sheenstar'))        #['s', '', '', '', '', 's', '', '', '', '']
print(re.findall(r's*','hello'))            #['', '', '', '', '', '']

#+ 代表前一个字符出现一次或者无限次
print(re.findall(r's+','sheenstar'))        #['s', 's']
print(re.findall(r's+','hello'))            #[]

# ? 代表前一个字符出现1次或者0次
print(re.findall(r'188-?', '188 6543'))     #['188']
print(re.findall(r'188-?', '188-6543'))     #['188-']
print(re.findall(r'188-?', '148-6543'))     #[]


# 匹配电话号码
pattern = r'\d{3}[\s-]?\d{4}[\s-]?\d{4}'
print(re.findall(pattern,'188 0123 4567'))      #['188 0123 4567']
print(re.findall(pattern,'188-0123-4567'))      #['188-0123-4567']
print(re.findall(pattern,'18801234567'))        #['188-0123-4567']

Detaillierte Einführung in reguläre Ausdrücke in Python

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in reguläre Ausdrücke in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen