Python-RegEx

RegEx oder reguläre Ausdrücke sind eine Zeichenfolge, die Suchmuster bildet.

RegEx kann verwendet werden, um zu überprüfen, ob eine Zeichenfolge bestimmte Suchmuster enthält.

RegEx

Python bietet einen Modul namens re eines Standardpakets, das zur Verarbeitung regulärer Ausdrücke verwendet werden kann.

Import re Modul:

import re

RegEx in Python

Import re Nach dem Importieren kann mit regulären Ausdrücken begonnen werden:

Beispiel

Durchsucht den String, um zu überprüfen, ob er mit "China" beginnt und mit "country" endet:

import re
txt = "China ist ein großes Land"
x = re.search("^China.*country$", txt)

Laufender Beispiel

RegEx-Funktionen

re Das Modul bietet eine Reihe von Funktionen, die es uns erlauben, Strings zu durchsuchen, um Übereinstimmungen zu finden:

Funktion Beschreibung
findall Gibt eine Liste zurück, die alle Übereinstimmungen enthält
search Gibt ein Match-Objekt zurück, wenn an irgendeiner Stelle im String eine Übereinstimmung vorhanden ist
split Gibt eine Liste zurück, die den String bei jeder Übereinstimmung aufteilt
sub Ersetzt eine oder mehrere Übereinstimmungen mit einem String

Meta-Zeichen

Meta-Zeichen sind Zeichen mit besonderer Bedeutung:

Zeichen Beschreibung Beispiel TIY
[] Eine Gruppe von Zeichen "[a-m]" Versuchen Sie es!
\ Zeigt spezielle Sequenzen an (kann auch zur Umgehung spezieller Zeichen verwendet werden) "\d" Versuchen Sie es!
. Jeder Zeichen (außer dem Zeilenumbruch) "he..o" Versuchen Sie es!
^ Begint mit "^hello" Versuchen Sie es!
$ Endet mit "world$" Versuchen Sie es!
* Nullmal oder mehrmals auftreten "aix*" Versuchen Sie es!
+ Einmal oder mehrmals auftreten "aix+" Versuchen Sie es!
{} Genau angegebene Anzahl der Wiederholungen "al{2}" Versuchen Sie es!
| Eines der beiden "falls|stays" Versuchen Sie es!
()] Kapturen und Gruppierung

Spezielle Sequenz

Spezielle Sequenz bedeutet \ gefolgt von einem der Zeichen im folgenden Tisch, hat eine besondere Bedeutung:

Zeichen Beschreibung Beispiel TIY
\A Gibt die Übereinstimmung zurück, wenn das angegebene Zeichen am Anfang des Strings vorhanden ist "\AThe" Versuchen Sie es!
\b Gibt eine Übereinstimmung zurück, bei der das angegebene Zeichen am Anfang oder am Ende des Wortes vorhanden ist r"\bain"
r"rain\b"
Versuchen Sie es!
Versuchen Sie es!
\B Gibt eine Übereinstimmung zurück, bei der das angegebene Zeichen vorhanden ist, aber nicht am Anfang (oder am Ende) des Wortes r"\Bain"
r"rain\B"
Versuchen Sie es!
Versuchen Sie es!
\d Gibt eine Übereinstimmung zurück, bei der der String Ziffern enthält (Ziffern 0-9) "\d" Versuchen Sie es!
\D Gibt eine Übereinstimmung zurück, bei der der String keine Ziffern enthält "\D" Versuchen Sie es!
\s Gibt eine Übereinstimmung zurück, bei der der String Leerzeichen enthält "\s" Versuchen Sie es!
\S Gibt eine Übereinstimmung zurück, bei der der String keine Leerzeichen enthält "\S" Versuchen Sie es!
\w Gibt eine Übereinstimmung zurück, bei der der String beliebige Wortzeichen enthält
(von a bis Z, von 0 bis 9 und dem Unterstrich _ Zeichen)
"\w" Versuchen Sie es!
\W Gibt eine Übereinstimmung zurück, bei der der String keine Wortzeichen enthält "\W" Versuchen Sie es!
\Z Gibt die Übereinstimmung zurück, wenn der angegebene Zeichen am Ende des Strings vorhanden ist "Spanien\Z" Versuchen Sie es!

Set (Menge)

Set (Set) ist ein Paar eckige Klammern [] Ein Set von Zeichen, die spezielle Bedeutung haben:

Sammlung Beschreibung Versuchen Sie es!
[arn] Gibt einen Match zurück, der eines der angegebenen Zeichen (a, r oder n) enthält Versuchen Sie es!
[a-n] Gibt alle kleinen Buchstaben zwischen a und n zurück Versuchen Sie es!
[^arn] Gibt alle Zeichen zurück, die nicht a, r und n sind Versuchen Sie es!
[0123] Gibt alle Matches zurück, die jede der angegebenen Ziffern (0, 1, 2 oder 3) enthalten Versuchen Sie es!
[0-9] Gibt alle Ziffern zwischen 0 und 9 zurück Versuchen Sie es!
[0-5][0-9] Gibt alle Ziffern zwischen 0 und 9 zurück Versuchen Sie es!
[a-zA-Z] Gibt alle Zeichen zwischen a und z zurück, sowohl Klein- als auch Großbuchstaben Versuchen Sie es!
[+] In der Sammlung haben +, *, ., |, (), $, {} keine besondere Bedeutung, daher bedeutet [+] zurückzuführen: Versuchen Sie es!

findall() Funktion

findall() Die Funktion gibt eine Liste zurück, die alle Matches enthält.

Beispiel

Druckt die Liste aller Matches aus:

import re
str = "China ist ein großartiges Land"
x = re.findall("a", str)
print(x)

Laufender Beispiel

Diese Liste enthält die Matches in der Reihenfolge, in der sie gefunden werden.

Wird kein Match gefunden, wird eine leere Liste zurückgegeben:

Beispiel

Wird kein Match gefunden, wird eine leere Liste zurückgegeben:

import re
str = "China ist ein großartiges Land"
x = re.findall("USA", str)
print(x)

Laufender Beispiel

search() Funktion

search() Die Funktion durchsucht das String nach einem Match und gibt im Fall eines Matches einen Match-Objekt zurück.

Wenn mehrere Matches vorhanden sind, wird nur das erste Match zurückgegeben:

Beispiel

Sucht nach dem ersten Leerzeichen-Zeichen im String:

import re
str = "China ist ein großartiges Land"
x = re.search("\s", str)
print("Der erste Leerzeichen-Zeichen befindet sich in Position:", x.start())

Laufender Beispiel

Wird kein Match gefunden, wird der Wert zurückgegeben None:

Beispiel

Durchsuchen ohne Rückgabe des Matches:

import re
str = "China ist ein großartiges Land"
x = re.search("USA", str)
print(x)

Laufender Beispiel

split() Funktion

split() Die Funktion gibt eine Liste zurück, in der der String bei jedem Match geteilt wird:

Beispiel

Teilt den String an jeder Leerzeichen-Zeichen:

import re
str = "China ist ein großartiges Land"
x = re.split("\s", str)
print(x)

Laufender Beispiel

Sie können durch die Angabe} maxsplit Parameter zur Kontrolle der Anzahl der Erscheinungen:

Beispiel

Teilt den String nur an der ersten Erscheinung:

import re
str = "China ist ein großartiges Land"
x = re.split("\s", str, 1)
print(x)

Laufender Beispiel

sub() Funktion

sub() Die Funktion ersetzt das Matchen durch den gewählten Text:

Beispiel

Mit der Zahl 9 wird jeder Leerzeichen-Zeichen ersetzt:

import re
str = "China ist ein großartiges Land"
x = re.sub("\s", "9", str)
print(x)

Laufender Beispiel

Sie können durch die Angabe} count Parameter zur Kontrolle der Anzahl der Ersetzungen:

Beispiel

Ersetzen Sie die ersten beiden Vorkommen:

import re
str = "China ist ein großartiges Land"
x = re.sub("\s", "9", str, 2)
print(x)

Laufender Beispiel

Match-Objekt

Match-Objekt ist ein Objekt, das Informationen über die Suche und das Ergebnis enthält.

Anmerkung:Wird kein Übereinstimmung erkannt, wird der Rückgabewert zurückgegeben Nonestatt Match-Objekt.

Beispiel

Die Suche wird einen Match-Objekt zurückgeben

import re
str = "China ist ein großartiges Land"
x = re.search("a", str)
print(x) # Eine Objekt wird gedruckt

Laufender Beispiel

Das Match-Objekt bietet Attribute und Methoden zur Rücknahme von Informationen über die Suche und das Ergebnis:

  • span() Das zurückgegebene Tupel enthält den Anfangs- und Endpunkt der Übereinstimmung
  • .string Geben Sie den String, der in die Funktion übergeben wurde, zurück
  • group() Geben Sie den teilweisen übereinstimmenden String zurück

Beispiel

Drucken Sie die Position der ersten Übereinstimmung (Beginn und Ende der Position) aus.

Suchen Sie nach regulären Ausdrücken, die mit einem großen "C" beginnen:

import re
str = "China ist ein großartiges Land"
x = re.search(r"\bC\w+", str)
print(x.span())

Laufender Beispiel

Beispiel

Drucken Sie den String, der in die Funktion übergeben wurde:

import re
str = "China ist ein großartiges Land"
x = re.search(r"\bC\w+", str)
print(x.string)

Laufender Beispiel

Beispiel

Drucken Sie den teilweiligen angepassten String aus.

Suchen Sie nach regulären Ausdrücken, die mit einem großen "C" beginnen:

import re
str = "China ist ein großartiges Land"
x = re.search(r"\bC\w+", str)
print(x.group())

Laufender Beispiel

Anmerkung:Wird kein Übereinstimmung erkannt, wird der Rückgabewert zurückgegeben Nonestatt Match-Objekt.