Python – Überprüfen Sie, ob eine Zeichenfolge mit einer Liste regulärer Ausdrücke übereinstimmt

WBOY
Freigeben: 2023-09-04 08:49:08
nach vorne
1628 Leute haben es durchsucht

Python - 检查字符串是否与正则表达式列表匹配

Ein regulärer Ausdruck, auch regulärer Ausdruck genannt, ist eine Zeichenfolge, die ein Suchmuster bildet. Es ist eines der leistungsstarken Werkzeuge zum Mustervergleich und zur Bearbeitung von Zeichenfolgen. In Python gibt es ein Modul namens re, das bei der Bildung regulärer Ausdrücke hilft.

Reguläre AusdrückeMuster bestehen aus gewöhnlichen Zeichen (z. B. Buchstaben, Zahlen) und Sonderzeichen, die als Metazeichen bezeichnet werden. Metazeichen haben besondere Bedeutungen und ermöglichen uns die Definition komplexer Suchmuster. Im Folgenden sind einige häufig verwendete Metazeichen in regulären Python-Ausdrücken aufgeführt.

  • . (Punkt) – entspricht jedem einzelnen Zeichen außer Zeilenumbruch.

  • ^ (Caret)− entspricht dem Anfang einer Zeichenfolge.

  • $(USD) – Entspricht dem Ende einer Zeichenfolge.

  • * (Sternchen) – Entspricht null oder mehr Vorkommen des vorhergehenden Musters.

  • + (Pluszeichen) – Entspricht einem oder mehreren Vorkommen des vorhergehenden Musters.

  • ? (Fragezeichen) – Entspricht null oder einem Vorkommen des vorhergehenden Musters.

  • [] (eckige Klammern) – Definiert eine Zeichenklasse und entspricht jedem einzelnen Zeichen innerhalb der eckigen Klammern.

  • () (Klammern) – Gruppieren Sie Muster und erfassen Sie passende Teilzeichenfolgen.

  • (Backslash) – Metazeichen maskieren oder spezielle Sequenzen einführen.

Andere zusätzliche reguläre Ausdrücke unterstützen spezielle Sequenzen, die gängige Muster darstellen, wie unten beschrieben.

  • d – Entspricht einer beliebigen Zahl, die [0-9] entspricht.

  • w – Entspricht jedem alphanumerischen Zeichen, das [a-zA-Z0-9_] entspricht.

  • s – entspricht jedem Leerzeichen.

  • b - Passen Sie Wortgrenzen an.

  • A – Entspricht dem Anfang einer Zeichenfolge ähnlich wie ^ , berücksichtigt jedoch keine mehrzeiligen Muster.

  • Z – Entspricht dem Ende einer Zeichenfolge ähnlich wie $ , berücksichtigt jedoch keine mehrzeiligen Muster.

In Python gibt es mehrere Möglichkeiten, zu überprüfen, ob eine Zeichenfolge mit einer Liste regulärer Ausdrücke (Regex) übereinstimmt. Schauen wir uns jede Methode einzeln an.

Re-Modul verwenden

Das Modul „re“ in Python stellt Funktionen für die Arbeit mit regulären Ausdrücken bereit. Wir können die Funktion „re.match()“ aus dem Modul re verwenden, um zu überprüfen, ob eine Zeichenfolge mit einem Regex-Muster übereinstimmt, und um die Regex-Musterliste zu überprüfen. Wir können über die Liste iterieren und für jedes Muster den Aufruf ‘ durchführen. re.match()'.

Beispiel

In diesem Beispiel wird die Funktion re.match() verwendet, um zu prüfen, ob eine Zeichenfolge mit jedem Muster in der regex_list übereinstimmt. Wenn eine Übereinstimmung gefunden wird, wird das Muster gedruckt.

import re
string = "Hello, Welcome to Tutorialspoint!"
regex_list = [r"Hello", r"\bWelcome\b", r"\d+"]
for pattern in regex_list:
   if re.match(pattern, string):
      print(f"String matches pattern: {pattern}")
Nach dem Login kopieren

Ausgabe

String matches pattern: Hello
Nach dem Login kopieren

Verwenden Sie Listenverständnis und re.search()

Eine weitere Möglichkeit, passende Muster zu finden, ist die Verwendung eines Listenverständnisses und der Funktion re.search(). Indem wir ein Listenverständnis verwenden, ohne die Liste mit regulären Ausdrücken zu iterieren, können wir eine neue Liste erstellen, die das passende Muster enthält.

Beispiel

In diesem Beispiel verwenden wir ein Listenverständnis und die Zeile [pattern for pattern in regex_list if re.search(pattern, string)], um eine neue Liste matching_patterns zu erstellen, die die regulären Ausdrücke in regex_list enthält, die dem String-Stil entsprechen Modus. Anschließend verwenden wir die Funktion re.search(), um das erste Vorkommen des Musters in der Zeichenfolge zu finden.

import re
string = "Hello,happy learning!"
regex_list = [r"Hello", r"\bWelcome\b", r"\d+"]
matching_patterns = [pattern for pattern in regex_list if re.search(pattern, string)]
print("Matching patterns:", matching_patterns)
Nach dem Login kopieren

Ausgabe

Matching patterns: ['Hello']
Nach dem Login kopieren

Verwenden Sie die Funktion „any()“ und „re.search()“

Die Funktion

any() ist eine der in Python verfügbaren Funktionen, mit der überprüft werden kann, ob ein Element in einer Listensequenz regulärer Ausdrücke wahr ist. Wir können dies mit re.search() kombinieren, um zu prüfen, ob ein Regex-Muster mit der Zeichenfolge übereinstimmt.

Beispiel

In diesem Beispiel wird die Funktion any() verwendet, um die Elemente der Liste regulärer Ausdrücke zu durchlaufen und mit re.search() zu prüfen, ob ein Muster mit der Zeichenfolge übereinstimmt. . Wenn eine Übereinstimmung gefunden wird, wird „String stimmt mit mindestens einem Muster überein“ gedruckt.

import re
string = "Hello, Welcome to Tutorialspoint!"
regex_list = [r"Hello", r"\bWelcome\b", r"\d+"]
if any(re.search(pattern, string) for pattern in regex_list):
   print("String matches at least one pattern")
Nach dem Login kopieren

Ausgabe

String matches at least one pattern
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonPython – Überprüfen Sie, ob eine Zeichenfolge mit einer Liste regulärer Ausdrücke übereinstimmt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!