Heim > Artikel > Backend-Entwicklung > Detaillierte Einführung in reguläre Ausdrücke in Python
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.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超可爱!!')) #['!', '!']
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
{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']
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!