Inhaltsverzeichnis
1. Gängige Methoden
2. Spezielle passende Zeichen
3. Modulmethode
re.match(pattern, string, flags=0)
search(pattern, string, flags=0)
sub(pattern, repl, string, count=0, flags=0)
subn(pattern, repl, string, count=0, flags=0)
split(pattern, string, maxsplit=0, flags=0)
findall(pattern, string, flags=0)
4. Match-Objekt
5. Musterobjekt
6. Übereinstimmungsmuster
Heim Backend-Entwicklung Python-Tutorial Eine ausführliche Einführung zum Erlernen des re-Moduls der Python-Standardbibliothek

Eine ausführliche Einführung zum Erlernen des re-Moduls der Python-Standardbibliothek

Mar 21, 2017 am 09:15 AM

Das re-Modul bietet eine Reihe leistungsstarker regulärer Ausdruck (regulärer Ausdruck)-Tools, mit denen Sie schnell überprüfen können, ob eine bestimmte Zeichenfolge mit einem bestimmten Muster übereinstimmt ( matchFunktion). ) oder fügen Sie dieses Muster ein (Suchfunktion). Reguläre Ausdrücke sind Zeichenfolgenmuster, die in einer kompakten (und mysteriösen) Syntax geschrieben sind.

1. Gängige Methoden

verwendet werden können verwendet
Gemeinsame Methoden Beschreibung
Übereinstimmung (Muster, Zeichenfolge, Flags=0) Wenn der Anfang der Zeichenfolge mit dem regulären Ausdrucksmuster übereinstimmt, wird die entsprechende Instanz von MatchObject zurückgegeben, andernfalls wird zurückgegeben Keine
search(pattern, string, flags=0) Scannen Sie die Zeichenfolge. Wenn eine Position vorhanden ist, die mit dem regulären Ausdrucksmuster übereinstimmt, wird eine Instanz von MatchObject zurückgegeben. andernfalls ReturnNone
sub(pattern, repl, string, count=0, flags=0) stimmt mit dem Teil des Musters im String überein , Durch repl ersetzen, bis zur Anzahl der Male
subn(pattern, repl, string, count=0, flags=0) ähnelt sub, zurückgegeben von subn Ist eine ersetzte Zeichenfolge und ein Array übereinstimmender Zeiten in ein Tupel
split(pattern, string, maxsplit=0, flags=0) Verwenden Sie die mit dem Muster übereinstimmende Zeichenfolge, um die Zeichenfolge aufzuteilen
findall(pattern, string, flags=0) Gibt das String-Matching-Muster in string in Form einer Liste zurück
compile( pattern , flags=0)compile(pattern, flags=0) Kompiliert ein reguläres Ausdrucksmuster in ein reguläres -Objekt , sodass die Übereinstimmungs- und Suchmethoden des regulären Objekts
purge() Löschenden regulären Ausdruck Cache
escape( string ) Fügen Sie allen Zeichen in der Zeichenfolge außer Buchstaben und Zahlen einen Backslash hinzu

2. Spezielle passende Zeichen

Syntax Beschreibung
. entspricht jedem Zeichen außer Zeilenumbrüchen
^ Header entspricht
$ Ende-Übereinstimmung
* stimmt 0 oder öfter mit dem vorherigen Zeichen überein
+ übereinstimmt das vorherige Zeichen ein- oder mehrmals Entspricht m- bis n-mal dem vorherigen Zeichen
Escape jedes Sonderzeichen
[] wird verwendet, um einen Zeichensatz in Kombination mit
| darzustellen, oder: Es bedeutet passend zu jedem
links und rechts

3. Modulmethode

re.match(pattern, string, flags=0)

  Findet eine Übereinstimmung vom Anfang der Zeichenfolge und gibt eine Match-Objektinstanz zurück, wenn das Muster übereinstimmt (Match Objekt, das später beschrieben wird), andernfalls wird None zurückgegeben. Flags ist der Abgleichsmodus (unten beschrieben), der zur Steuerung der Abgleichsmethode regulärer Ausdrücke verwendet wird.

import re

a = &#39;abcdefg&#39;print re.match(r&#39;abc&#39;, a)  # 匹配成功print re.match(r&#39;abc&#39;, a).group()print re.match(r&#39;cde&#39;, a)  # 匹配失败>>><_sre.SRE_Match object at 0x0000000001D94578>
>>>abc
>>>None
Nach dem Login kopieren

search(pattern, string, flags=0)

Wird verwendet, um Teilzeichenfolgen in der Zeichenfolge zu finden, die erfolgreich abgeglichen werden können. Wenn sie gefunden werden, wird eine Match-Objektinstanz zurückgegeben, andernfalls wird None zurückgegeben .

import re

a = &#39;abcdefg&#39;print re.search(r&#39;bc&#39;, a)print re.search(r&#39;bc&#39;, a).group()print re.search(r&#39;123&#39;, a)

>>><_sre.SRE_Match object at 0x0000000001D94578>
>>>bc
>>>None
Nach dem Login kopieren

sub(pattern, repl, string, count=0, flags=0)

Ersetzen, ersetzen Sie den Teil der Zeichenfolge, der mit dem Muster übereinstimmt, durch repl, bis zu Anzahl Mal (The verbleibende Übereinstimmungen werden nicht verarbeitet) und dann wird die ersetzte Zeichenfolge zurückgegeben.

import re

a = &#39;a1b2c3&#39;print re.sub(r&#39;\d+&#39;, &#39;0&#39;, a)  # 将数字替换成&#39;0&#39;print re.sub(r&#39;\s+&#39;, &#39;0&#39;, a)  # 将空白字符替换成&#39;0&#39;>>>a0b0c0
>>>a1b2c3
Nach dem Login kopieren

subn(pattern, repl, string, count=0, flags=0)

Es ist dasselbe wie die Funktion sub(), außer dass es ein Tupel zurückgibt, das new enthält Zeichen Zeichenfolge und die Anzahl der Übereinstimmungen

import re

a = &#39;a1b2c3&#39;print re.subn(r&#39;\d+&#39;, &#39;0&#39;, a)  # 将数字替换成&#39;0&#39;>>>(&#39;a0b0c0&#39;, 3)
Nach dem Login kopieren

split(pattern, string, maxsplit=0, flags=0)

Reguläre Version von split(), aufgeteilt nach Teilzeichenfolgen, die mit der Musterzeichenfolge übereinstimmen, Wenn im Muster Klammern verwendet werden, wird die mit dem Muster übereinstimmende Zeichenfolge auch als Teil der Rückgabewertliste verwendet, und maxsplit ist die Zeichenfolge, die maximal geteilt werden kann.

import re

a = &#39;a1b1c&#39;print re.split(r&#39;\d&#39;, a)print re.split(r&#39;(\d)&#39;, a)

>>>[&#39;a&#39;, &#39;b&#39;, &#39;c&#39;]
>>>[&#39;a&#39;, &#39;1&#39;, &#39;b&#39;, &#39;1&#39;, &#39;c&#39;]
Nach dem Login kopieren

findall(pattern, string, flags=0)

Gibt nicht überlappende Teilzeichenfolgen zurück, die mit dem Muster in der Zeichenfolge übereinstimmen, in Form einer Liste.

import re

a = &#39;a1b2c3d4&#39;print re.findall(&#39;\d&#39;, a)

>>>[&#39;1&#39;, &#39;2&#39;, &#39;3&#39;, &#39;4&#39;]
Nach dem Login kopieren

4. Match-Objekt

Wenn re.match() und re.search() erfolgreich übereinstimmen, geben sie ein Match-Objekt zurück, das viele Informationen über die Übereinstimmung enthält . Sie können die von Match bereitgestellten Eigenschaften oder Methoden verwenden, um diese Informationen abzurufen. Zum Beispiel:

>>>import re

>>>str = &#39;he has 2 books and 1 pen&#39;
>>>ob = re.search(&#39;(\d+)&#39;, str)

>>>print ob.string  # 匹配时使用的文本
he has 2 books and 1 pen

>>>print ob.re # 匹配时使用的Pattern对象
re.compile(r&#39;(\d+)&#39;)

>>>print ob.group()  # 获得一个或多个分组截获的字符串
2

>>>print ob.groups()  # 以元组形式返回全部分组截获的字符串
(&#39;2&#39;,)
Nach dem Login kopieren

5. Musterobjekt

Das Musterobjektobjekt wird von re.compile() zurückgegeben. Es verfügt über viele Methoden mit demselben Namen wie das re-Modul Methoden haben ähnliche Funktionen. Zum Beispiel:

>>>import re
>>>pa = re.compile(&#39;(d\+)&#39;)

>>>print pa.split(&#39;he has 2 books and 1 pen&#39;)
[&#39;he has &#39;, &#39;2&#39;, &#39; books and &#39;, &#39;1&#39;, &#39; pen&#39;]

>>>print pa.findall(&#39;he has 2 books and 1 pen&#39;)
[&#39;2&#39;, &#39;1&#39;]

>>>print pa.sub(&#39;much&#39;, &#39;he has 2 books and 1 pen&#39;)
he has much books and much pen
Nach dem Login kopieren

6. Übereinstimmungsmuster

Der Wert des Übereinstimmungsmusters kann den bitweisen ODER-Operator '|' verwenden, um anzugeben, dass er gleichzeitig wirksam wird B. re.I |. re.M, im Folgenden sind einige häufige Flags aufgeführt.

  • re.I(re.IGNORECASE): Groß-/Kleinschreibung ignorieren

>>>pa = re.compile(&#39;abc&#39;, re.I)
>>>pa.findall(&#39;AbCdEfG&#39;)
>>>[&#39;AbC&#39;]
Nach dem Login kopieren
  • re.L(re . LOCALE): Zeichensatzlokalisierung

Diese Funktion dient zur Unterstützung mehrsprachiger Zeichensatzverwendungsumgebungen, wie z. B. des Escape-Zeichens w, in einem englischen Kontext , es steht für [a-zA-Z0-9], was alle englischen Zeichen und Zahlen bedeutet. Bei Verwendung in einer französischen Umgebung stimmen einige französische Zeichenfolgen nicht überein. Fügen Sie diese L-Option hinzu und Sie können eine Übereinstimmung erzielen. Dies scheint jedoch für die chinesische Umgebung wenig nützlich zu sein und chinesische Schriftzeichen können immer noch nicht erkannt werden.

  • re.M(re.MULTILINE): Mehrzeilenmodus, ändern Sie das Verhalten von '^' und '$'

>>>pa = re.compile(&#39;^\d+&#39;)
>>>pa.findall(&#39;123 456\n789 012\n345 678&#39;)
>>>[&#39;123&#39;]

>>>pa_m = re.compile(&#39;^\d+&#39;, re.M)
>>>pa_m.findall(&#39;123 456\n789 012\n345 678&#39;)
>>>[&#39;123&#39;, &#39;789&#39;, &#39;345&#39;]
Nach dem Login kopieren
  • re.S(re.DOTALL): Klicken Sie auf ein beliebiges passendes Muster, um das Verhalten von „.“ zu ändern

  .号将匹配所有的字符。缺省情况下.匹配除换行符\n外的所有字符,使用这一选项以后,点号就能匹配包括换行符的任何字符。

  • re.U(re.UNICODE): 根据Unicode字符集解析字符

  • re.X(re.VERBOSE): 详细模式

# 这个模式下正则表达式可以是多行,忽略空白字符,并可以加入注释。以下两个正则表达式是等价的a = re.compile(r"""\d +  # the integral part
                   \.    # the decimal point
                   \d *  # some fractional digits""", re.X)
b = re.compile(r"\d+\.\d*")# 但是在这个模式下,如果你想匹配一个空格,你必须用&#39;/ &#39;的形式(&#39;/&#39;后面跟一个空格)
Nach dem Login kopieren


Das obige ist der detaillierte Inhalt vonEine ausführliche Einführung zum Erlernen des re-Moduls der Python-Standardbibliothek. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie löste ich das Problem der Berechtigungen beim Betrachten der Python -Version in Linux Terminal? Wie löste ich das Problem der Berechtigungen beim Betrachten der Python -Version in Linux Terminal? Apr 01, 2025 pm 05:09 PM

Lösung für Erlaubnisprobleme beim Betrachten der Python -Version in Linux Terminal Wenn Sie versuchen, die Python -Version in Linux Terminal anzuzeigen, geben Sie Python ein ...

Wie lehre ich innerhalb von 10 Stunden die Grundlagen für Computer-Anfänger-Programmierbasis in Projekt- und problemorientierten Methoden? Wie lehre ich innerhalb von 10 Stunden die Grundlagen für Computer-Anfänger-Programmierbasis in Projekt- und problemorientierten Methoden? Apr 02, 2025 am 07:18 AM

Wie lehre ich innerhalb von 10 Stunden die Grundlagen für Computer -Anfänger für Programmierungen? Wenn Sie nur 10 Stunden Zeit haben, um Computer -Anfänger zu unterrichten, was Sie mit Programmierkenntnissen unterrichten möchten, was würden Sie dann beibringen ...

Wie kann ich die gesamte Spalte eines Datenrahmens effizient in einen anderen Datenrahmen mit verschiedenen Strukturen in Python kopieren? Wie kann ich die gesamte Spalte eines Datenrahmens effizient in einen anderen Datenrahmen mit verschiedenen Strukturen in Python kopieren? Apr 01, 2025 pm 11:15 PM

Bei der Verwendung von Pythons Pandas -Bibliothek ist das Kopieren von ganzen Spalten zwischen zwei Datenrahmen mit unterschiedlichen Strukturen ein häufiges Problem. Angenommen, wir haben zwei Daten ...

Wie kann man vom Browser vermeiden, wenn man überall Fiddler für das Lesen des Menschen in der Mitte verwendet? Wie kann man vom Browser vermeiden, wenn man überall Fiddler für das Lesen des Menschen in der Mitte verwendet? Apr 02, 2025 am 07:15 AM

Wie kann man nicht erkannt werden, wenn Sie Fiddlereverywhere für Man-in-the-Middle-Lesungen verwenden, wenn Sie FiddLereverywhere verwenden ...

Was sind reguläre Ausdrücke? Was sind reguläre Ausdrücke? Mar 20, 2025 pm 06:25 PM

Regelmäßige Ausdrücke sind leistungsstarke Tools für Musteranpassung und Textmanipulation in der Programmierung, wodurch die Effizienz bei der Textverarbeitung in verschiedenen Anwendungen verbessert wird.

Wie hört Uvicorn kontinuierlich auf HTTP -Anfragen ohne Serving_forver () an? Wie hört Uvicorn kontinuierlich auf HTTP -Anfragen ohne Serving_forver () an? Apr 01, 2025 pm 10:51 PM

Wie hört Uvicorn kontinuierlich auf HTTP -Anfragen an? Uvicorn ist ein leichter Webserver, der auf ASGI basiert. Eine seiner Kernfunktionen ist es, auf HTTP -Anfragen zu hören und weiterzumachen ...

Wie erstelle ich dynamisch ein Objekt über eine Zeichenfolge und rufe seine Methoden in Python auf? Wie erstelle ich dynamisch ein Objekt über eine Zeichenfolge und rufe seine Methoden in Python auf? Apr 01, 2025 pm 11:18 PM

Wie erstellt in Python ein Objekt dynamisch über eine Zeichenfolge und ruft seine Methoden auf? Dies ist eine häufige Programmieranforderung, insbesondere wenn sie konfiguriert oder ausgeführt werden muss ...

Was sind einige beliebte Python -Bibliotheken und ihre Verwendung? Was sind einige beliebte Python -Bibliotheken und ihre Verwendung? Mar 21, 2025 pm 06:46 PM

In dem Artikel werden beliebte Python-Bibliotheken wie Numpy, Pandas, Matplotlib, Scikit-Learn, TensorFlow, Django, Flask und Anfragen erörtert, die ihre Verwendung in wissenschaftlichen Computing, Datenanalyse, Visualisierung, maschinellem Lernen, Webentwicklung und h beschreiben

See all articles