Reguläre Ausdrücke in Python - Set 2 (Alle suchen, abgleichen und finden)
Regulärer Ausdruck in Python mit Beispielen | Set 1
Das Modul re bietet Unterstützung für reguläre Ausdrücke in Python. Nachfolgend finden Sie die wichtigsten Methoden in diesem Modul.
re.search(): Diese Methode gibt entweder None zurück (wenn das Muster nicht übereinstimmt) oder ein re.MatchObject, das Informationen zum übereinstimmenden Teil der Zeichenfolge enthält. Diese Methode wird nach der ersten Übereinstimmung beendet. Sie eignet sich daher am besten zum Testen eines regulären Ausdrucks und nicht zum Extrahieren von Daten.
import
re
regex
=
r
"([a-zA-Z]+) (\d+)"
match
=
re.search(regex,
"I was born on June 24"
)
if
match !
=
None
:
(
"Match at index %s, %s"
%
(match.start(), match.end()))
(
"Full match: %s"
%
(match.group(
0
)))
(
"Month: %s"
%
(match.group(
1
)))
(
"Day: %s"
%
(match.group(
2
)))
else
:
(
"The regex pattern does not match."
)
Ausgabe :
Übereinstimmung bei Index 14, 21 Volles Spiel: 24. Juni Monat: Juni Tag: 24
re.match(): Diese Funktion versucht, das Muster mit der gesamten Zeichenfolge abzugleichen . Die Funktion re.match gibt bei Erfolg ein Übereinstimmungsobjekt zurück, bei Fehler keine.
re.match (Muster, String, Flags = 0) Muster: Regulärer Ausdruck, der abgeglichen werden soll. Zeichenfolge: Zeichenfolge, in der nach Mustern gesucht wird Flags: Wir können verschiedene Flags angeben mit bitweisem ODER (|).
import
re
def
findMonthAndDate(string):
regex
=
r
"([a-zA-Z]+) (\d+)"
match
=
re.match(regex, string)
if
match
=
=
None
:
(
"Not a valid date"
)
return
(
"Given Data: %s"
%
(match.group()))
(
"Month: %s"
%
(match.group(
1
)))
(
"Day: %s"
%
(match.group(
2
)))
findMonthAndDate(
"Jun 24"
)
("")
findMonthAndDate(
"I was born on June 24"
)
Ausgabe:
Gegebene Daten: 24. Juni Monat: Jun Tag: 24 Kein gültiges Datum
re.findall(): Gibt alle nicht überlappenden Übereinstimmungen des Musters in der Zeichenfolge als Liste der Zeichenfolgen zurück. Die Zeichenfolge wird von links nach rechts gescannt und Übereinstimmungen werden in der angegebenen Reihenfolge zurückgegeben (Quelle: Python Docs ).
import
re
string
=
regex
=
'\d+'
match
=
re.findall(regex, string)
(match)
Ausgabe :
['123456789', '987654321']
Regulärer Ausdruck ist ein großes Thema. Es ist eine komplette Bibliothek. Reguläre Ausdrücke können viel bewirken. Sie können viele Daten abgleichen, suchen, ersetzen und extrahieren. Der folgende kleine Code ist beispielsweise so leistungsfähig, dass er die E-Mail-Adresse aus einem Text extrahieren kann. So können wir mit easy unsere eigenen Webcrawler und Scrapper in Python erstellen. Schauen Sie sich den folgenden regulären Ausdruck an.
# extrahieren Sie alle E-Mail-Adressen und fügen Sie sie dem resultierenden Satz hinzu new_emails = set (re.findall (r "[a-z0-9 \. \ - + _] + @ [a-z0-9 \. \ - + _] + \. [az] +", Text, re.I))
Wir werden bald weitere Methoden für reguläre Ausdrücke diskutieren.
Dieser Artikel wurde von Shwetanshu Rohatgi verfasst . Wenn Ihnen GeeksforGeeks gefällt und Sie einen Beitrag leisten möchten, können Sie auch einen Artikel schreiben und Ihren Artikel an contrib@geeksforgeeks.org senden. Sehen Sie sich Ihren Artikel auf der GeeksforGeeks-Hauptseite an und helfen Sie anderen Geeks.
Bitte schreiben Sie Kommentare, wenn Sie etwas Falsches finden oder weitere Informationen zu dem oben diskutierten Thema teilen möchten