Dieser Artikel bringt Ihnen relevantes Wissen über Python, das hauptsächlich Probleme im Zusammenhang mit regulären Ausdrücken vorstellt. Ein regulärer Ausdruck ist eine Zeichenfolge, die eine reguläre Information darstellen kann, I Ich hoffe, es wird für alle hilfreich sein.
Empfohlenes Lernen: Python-Video-Tutorial
Regulärer Ausdruck (Regulärer Ausdruck) ist eine Zeichenfolge, kann eine reguläre Information darstellen. Python verfügt über ein Modul für reguläre Ausdrücke, mit dem Sie reguläre Informationen finden, extrahieren und ersetzen können. Es ist schwierig, unter zehntausend Menschen eine Person zu finden, aber es ist leicht, unter zehntausend Menschen eine sehr „charakteristische“ Person zu finden. Angenommen, es gibt eine Person mit grüner Haut und einer Größe von drei Metern. Selbst wenn diese Person unter zehntausend Menschen ist, können andere sie auf den ersten Blick finden. Dieser „Suchvorgang“ wird in regulären Ausdrücken als „Matching“ bezeichnet. Wenn Sie in der Programmentwicklung möchten, dass ein Computerprogramm den benötigten Inhalt aus einem großen Textstück findet, können Sie reguläre Ausdrücke verwenden. Zur Verwendung regulärer Ausdrücke sind die folgenden Schritte erforderlich.
(1) Suchen Sie nach Mustern.
(2) Verwenden Sie reguläre Symbole, um Regeln auszudrücken.
(3) Informationen extrahieren.
Ein Punkt kann jedes Zeichen mit Ausnahme des Zeilenumbruchzeichens ersetzen, einschließlich, aber nicht beschränkt auf, englische Buchstaben, Zahlen und Chinesisch Zeichen, englische Satzzeichen und chinesische Satzzeichen.
Ein Sternchen kann einen Unterausdruck davor darstellen ( gewöhnliche Zeichen , ein anderes oder mehrere reguläre Ausdruckssymbole) 0 mal bis unendlich Zweitklassig.
Alle oben genannten sind akzeptabel: (das Sternchen steht für den vorherigen Ausdruck)
Der Punkt steht für jedes Zeichen, das kein Zeilenumbruch ist, und das Sternchen zeigt die Übereinstimmung an das Zeichen davor 0 Mal oder beliebig oft. „.*“ bedeutet also, dass eine Zeichenfolge beliebiger Länge beliebig oft abgeglichen wird.
Alle oben genannten Punkte sind akzeptabel:
Es bedeutet, dass „eine beliebige Anzahl beliebiger Zeichen außer Zeilenumbrüchen“ zwischen „solch“ und „ha“ steht.
Das Fragezeichen stellt den Unterausdruck dar, der 0-mal oder 1-mal davor steht. Beachten Sie, dass das Fragezeichen hier ein englisches Fragezeichen ist
Alle oben genannten Zeichen können verwendet werden:
Verwendung nach Kombination:
Alle oben genannten können verwendet werden:
Hinweis: Der Unterschied zwischen „.*?“ und „.*“
. *? Es bedeutet, die kürzeste Zeichenfolge zu finden, die die Anforderungen erfüllen kann.
In einem Satz wird es wie folgt zusammengefasst.
① „.*“: Greedy-Modus, erhalte die längste Zeichenfolge, die die Bedingungen erfüllt.
② „.*? „: Nicht gieriger Modus, erhalten Sie die kürzeste Zeichenfolge, die die Bedingungen erfüllt.
„Extrahieren“ Sie einen Teil des Inhalts aus einer Zeichenfolge.
Es gibt die folgende Zeichenfolge:
Es ist zu erkennen, dass auf der linken Seite des Passworts ein englischer Doppelpunkt steht hier und ein englischer Doppelpunkt auf der rechten Seite. Es gibt ein chinesisches Schriftzeichen für „Sie“. Beim Erstellen eines regulären Ausdrucks: .*? Wenn Sie, dann lautet das Ergebnis:
Der Doppelpunkt und das chinesische Zeichen „you“ sind jedoch nicht Teil des Passworts. Wenn Sie nur „12345abcde“ möchten, müssen Sie Klammern verwenden:
und erhalten:
In regulären Ausdrücken haben viele Symbole eine besondere Bedeutung, wie z. B. Fragezeichen, Sternchen, geschweifte Klammern, eckige Klammern und Klammern. Backslash muss in Verbindung mit anderen Zeichen verwendet werden, um Sonderzeichen in gewöhnliche Symbole und gewöhnliche Symbole in Sonderzeichen umzuwandeln.
„d“ wird in regulären Ausdrücken verwendet, um eine einzelne Ziffer darzustellen.
Wenn Sie zwei Zahlen extrahieren möchten, können Sie dd verwenden. Wenn Sie drei Zahlen extrahieren möchten, können Sie ddd verwenden. Was aber, wenn Sie nicht wissen, wie viele Ziffern diese Zahl hat? Sie müssen das Zeichen * verwenden, um eine beliebige Zahl darzustellen.
Alle können durch den folgenden regulären Ausdruck dargestellt werden:
Der Name des Moduls für reguläre Ausdrücke in Python lautet „re“, was der erste Buchstabe der Abkürzung für „regulärer Ausdruck“ ist. In Python müssen Sie dieses Modul zuerst importieren, bevor Sie es verwenden können. Die importierte Anweisung lautet:
import re
Pythons Modul für reguläre Ausdrücke enthält eine Findall-Methode, die alle Zeichenfolgen, die die Anforderungen erfüllen, in Form einer Liste zurückgeben kann.
Der Funktionsprototyp von findall ist:
re.findall(pattern,string,flags=0)
pattern stellt einen regulären Ausdruck dar, string stellt die Originalzeichenfolge dar und flags stellt einige spezielle Funktionsflags dar. Das Ergebnis von findall ist eine Liste mit allen passenden Ergebnissen. Wenn keine Ergebnisse übereinstimmen, wird eine leere Liste zurückgegeben.
Wenn Sie bestimmte Inhalte extrahieren müssen, schließen Sie den Inhalt in Klammern ein, damit Sie keine irrelevanten Informationen erhalten. Wie kann ich zurückkehren, wenn es mehrere „(.*? )“ enthält? Wie in Abbildung 3-2 dargestellt, wird immer noch eine Liste zurückgegeben, aber die Elemente in der Liste werden zu Tupeln. Das erste Element im Tupel ist die Kontonummer und das zweite Element ist das Passwort.
Der Funktionsprototyp enthält einen Flags-Parameter. Dieser Parameter kann weggelassen werden. Wenn es nicht weggelassen wird, verfügt es über einige Hilfsfunktionen, z. B. das Ignorieren der Groß-/Kleinschreibung, das Ignorieren von Zeilenumbrüchen usw.
Hier nehmen wir zur Veranschaulichung das Ignorieren von Zeilenumbrüchen. Um Zeilenumbrüche zu ignorieren, müssen Sie das Flag „re.S“ verwenden.
Obwohl das Symbol „n“ in den Matching-Ergebnissen erscheint, ist es besser, als gar nichts zu bekommen. Die Zeilenumbrüche im Inhalt können beim späteren Bereinigen der Daten ersetzt werden.
Die Verwendung von search() ist die gleiche wie die von findall(), aber search() gibt nur die erste Zeichenfolge zurück, die die Anforderungen erfüllt. Sobald etwas gefunden wird, das den Anforderungen entspricht, hört die Suche auf. Dies ist besonders nützlich, um nur die ersten Daten in einem sehr großen Text zu finden, was die Ausführungseffizienz des Programms erheblich verbessern kann. Der Funktionsprototyp von
search() lautet:
Wenn die Übereinstimmung erfolgreich ist, handelt es sich um ein reguläres Ausdrucksobjekt. Wenn keine Daten übereinstimmen, ist es „Keine“.
Wenn Sie das übereinstimmende Ergebnis benötigen, müssen Sie die Methode .group() verwenden, um den darin enthaltenen Wert abzurufen.
Nur wenn der Parameter in .group() 1 ist, wird das Ergebnis in den Klammern im regulären Ausdruck gedruckt. Die Parameter von
.group() dürfen die maximale Anzahl von Klammern im regulären Ausdruck nicht überschreiten. Ein Parameter von 1 bedeutet, dass der Inhalt in der ersten Klammer gelesen wird, ein Parameter von 2 bedeutet, dass der Inhalt in der zweiten Klammer gelesen wird, und so weiter.
(Beachten Sie, dass die im Bild nicht findall ist)
re.findall() wird mit der Funktion re.compile() geliefert, sodass re.compile( nicht verwendet werden muss) ). 1.4 Fähigkeiten zum Extrahieren regulärer Ausdrücke In den Klammern können auch andere Zeichen stehen.
Spezifische Auswirkungen finden Sie im Bild unten.Das obige ist der detaillierte Inhalt vonFassen Sie Wissenspunkte zu regulären Python-Ausdrücken zusammen und organisieren Sie sie. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!