Heim >Backend-Entwicklung >Python-Tutorial >Welche Möglichkeiten gibt es, das re-Modul in regulären Python-Ausdrücken zu verwenden? Einführung in die Verwendung des re-Moduls
Der Inhalt dieses Artikels befasst sich mit der Verwendung des Re-Moduls in regulären Python-Ausdrücken. Die Einführung in die Verwendung des re-Moduls hat einen gewissen Referenzwert. Freunde in Not können darauf zurückgreifen.
Reguläre Ausdrücke sind die am häufigsten verwendete Methode zur Verarbeitung von Zeichenfolgen und reguläre Ausdrücke sind überall in unserer Codierung zu sehen.
Die regulären Ausdrücke in Python unterscheiden sich geringfügig von denen in anderen Sprachen:
1. Beim Ersetzen einer Zeichenfolge kann die ersetzte Zeichenfolge eine Funktion sein
2 , die Aufteilung Die Funktion kann die Anzahl der Unterteilungen angeben, was zu Fallstricken führt
3 Der im vorherigen Punkt definierte Ausdruck muss eine feste Länge haben
Im Folgenden finden Sie eine detaillierte Beschreibung der Verwendung Beachten Sie, dass die drei oben genannten Unterschiede genau gleich sind.
1. Beschreibung:
re.match-Versuche um vom Anfang der Zeichenfolge abzugleichen. Wenn ein Muster an der Startposition nicht erfolgreich abgeglichen wird, gibt match() None zurück. Syntax: re.match(pattern, string, flags=0)Flags sind optionale Flags, mehrere Flags können durch bitweise ODER (|) Angabe erhalten werden. Beispielsweise ist re.I |. re.M auf I- und M-Bezeichner festgelegt:Modifikator |
Beschreibung
|
||||||||||||||
re.I | Groß- und Kleinschreibung ignorieren | ||||||||||||||
re.L | Do Lokalisierung Identifizieren (gebietsschemabezogene) Übereinstimmungen | ||||||||||||||
re.M | Mehrere Zeilen Matching, Influence ^ und $ | ||||||||||||||
re.S | make. Übereinstimmung beinhaltet Zeilenumbrüche Alle Zeichen einschließlich | ||||||||||||||
re.U | Geparst nach Unicode Zeichensatzzeichen. Dieses Flag betrifft w, W, b, B. | ||||||||||||||
re. >Dieses Flag erleichtert das Verständnis Ihrer regulären Ausdrücke, indem es Ihnen ein flexibleres Format bietet. |
Wenn der Abgleich erfolgreich ist, gibt die Methode re.match ein passendes Objekt zurück. Sie können die passende Objektfunktion group(num) oder groups() verwenden, um den passenden Ausdruck zu erhalten. group() oder group(0) gibt das übereinstimmende Ergebnis des gesamten regulären Ausdrucks zurück.
Beispiel:
s= 'abc123abc' print(re.match('[a-z]+', s)) # <_sre.SRE_Match object; span=(0, 3), match='abc'> print(re.match('[a-z]+', s).group(0)) # abc print(re.match('[\d]+', s)) # None print(re.match('[A-Z]+', s, re.I).group(0)) # abc print(re.match('[a-z]+', s).span()) # (0, 3)
2. Suche
Anleitung:
re.search scannt das Ganze Zeichen Die Verkettung gibt den ersten erfolgreichen Treffer zurück.
Syntax:
re.search(pattern, string, flags=0)
Die re.search-Methode gibt ein passendes Objekt zurück, wenn die Übereinstimmung erfolgreich ist, andernfalls wird zurückgegeben Keiner. Übereinstimmungsausdrücke können mit den Übereinstimmungsobjektfunktionen „group(num)“ oder „groups()“ abgerufen werden.
Beispiel:
s = 'abc123abc' print(re.search('[a-z]+', s).group()) # abc print(re.search('[a-z]+', s).span()) # (0, 3) print(re.search('[\d]+', s).group()) # 123 print(re.search('[\d]+', s).span()) # (3, 6) print(re.search('xyz', s)) # None
groupdict
groupdict gibt ein Wörterbuch aller übereinstimmenden benannten Untergruppen zurück.
print(re.search('[a-z]+', s).groupdict()) # {} print(re.search('(?P<letter>[a-z]+)(?P<num>\d+)', s).groupdict()) # {'num': '123', 'letter': 'abc'}
3, sub und subn
Erklärung:
re.sub wird verwendet, um Übereinstimmungen in der Zeichenfolge zu ersetzen.
re.subn gibt ein Tupel zurück, das die ersetzte Zeichenfolge und die Anzahl der Ersetzungen enthält.
Syntax:
sub(pattern, repl, string, count=0, flags=0)
repl: Die zu ersetzende Zeichenfolge, oder es kann eine Funktion sein .
Anzahl: Die maximale Anzahl von Ersetzungen nach dem Mustervergleich. Der Standardwert ist 0, was bedeutet, dass alle Übereinstimmungen ersetzt werden.
Beispiel:
s = 'abc123abc' print(re.sub('[\d]+', '数字', s)) # abc数字abc print(re.sub('[a-z]+', '字母', s, 1)) # 字母123abc # 将匹配的数字乘以 2 def double(matched): value = int(matched.group('value')) return str(value * 2) # repl是一个函数 print(re.sub('(?P<value>\d+)', double, s)) # abc246abc print(re.subn('[\d]+', '数字', s)) # ('abc数字abc', 1) print(re.subn('[a-z]+', '字母', s,)) # ('字母123字母', 2) print(re.subn('[a-z]+', '字母', s, 1)) # ('字母123字母', 1)
4. kompilieren
Erklärung:
re.compile wird verwendet für Kompilierung Regulärer Ausdruck, generiert ein reguläres Ausdrucksobjekt (Muster) zur Verwendung durch die beiden Funktionen match() und search().
Syntax:
compile(pattern, flags=0)
Beispiel:
s = 'abc123abc' p = re.compile('[\d]+') print(p.match(s, 4, 5).group(0)) # 2 从位置4开始匹配到位置5 print(p.search(s).group(0)) # 123
findall
Beschreibung:
re.findall findet alle Teilzeichenfolgen, die mit dem regulären Ausdruck in der Zeichenfolge übereinstimmen, und gibt eine Liste zurück. Wenn keine Übereinstimmung gefunden wird, wird eine leere Liste zurückgegeben.
Syntax:
findall(pattern, string, flags=0)
Beispiel:
s = 'abc123abc' print(re.findall('[a-z]+', s)) # ['abc', 'abc'] print(re.findall('[h-n]+', s)) # []
6. finditer
Beschreibung:
finditer ähnelt findall, es sucht nach allen Teilzeichenfolgen, die mit dem regulären Ausdruck in der Zeichenfolge übereinstimmen, und gibt sie als Iterator zurück.
Syntax:
finditer(pattern, string, flags=0)
Beispiel:
s = 'abc123def' it = re.finditer('[a-z]+', s) for match in it: print(match.group())
7. split
Beschreibung: Die Methode
re.split teilt die Zeichenfolge entsprechend übereinstimmender Teilzeichenfolgen auf und gibt eine Liste zurück.
Syntax:
split(pattern, string, maxsplit=0, flags=0)
maxsplit: Anzahl der Teilungen, maxsplit=1 einmal geteilt, Standard ist 0, nein Begrenzen Sie die Anzahl der Male.
Beispiel:
print(re.split('a', '1A1a2A3', re.I)) # ['1A1', '2A3']# 输出结果并未能区分大小写,这是因为re.split(pattern,string,maxsplit, flags)默认是四个参数,当我们传入的三个参数的时候,系统会默认re.I是第三个参数,所以就没起作用。# 如果想让这里的re.I起作用,写成flags=re.I即可。 print(re.split('a', '1A1a2A3', flags=re.I)) # ['1', '1', '2', '3']
8, escape
Erklärung:
re.escape für string The Spezielle Zeichenfolgen im Inneren werden maskiert.
Grammatik:
escape(pattern)
Beispiel:
print(re.escape('www.dxy.cn')) # www\.dxy\.cn
9 Regulärer Ausdruck
"(?P8a11bc632ea32a57b3e3693c7987c420…)": Gruppieren und benennen Sie es 8a11bc632ea32a57b3e3693c7987c420.
„(?P=name)“: bezieht sich auf die Zeichenfolge, die mit der Gruppe übereinstimmt, deren Alias 8a11bc632ea32a57b3e3693c7987c420 ist.
10. Spezielle Antezedens-Definition (negativ)
Die Antezedens-Definition (?<=exp) und die Antezedens-Negativdefinition (?) werden üblicherweise in regulären Ausdrücken verwendet .
(?<=aaa) # 正确 (?<=aaa|bbb) # 正确 (?<=aaa|bb) # 错误 (?<=\d+) # 错误 (?<=\d{3}) # 正确
Verwandte Empfehlungen:
Detaillierte Einführung in den regulären Ausdruck des Python-Moduls
Das obige ist der detaillierte Inhalt vonWelche Möglichkeiten gibt es, das re-Modul in regulären Python-Ausdrücken zu verwenden? Einführung in die Verwendung des re-Moduls. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!