Heim >Backend-Entwicklung >Python-Tutorial >Detaillierte Erläuterung der erweiterten Verwendung regulärer Python-Ausdrücke

Detaillierte Erläuterung der erweiterten Verwendung regulärer Python-Ausdrücke

高洛峰
高洛峰Original
2017-03-23 17:29:251522Durchsuche

Für Python erfordert das Erlernen regulärer Ausdrücke das Erlernen der Verwendung des Moduls re. In diesem Artikel werden einige fortgeschrittene Techniken vorgestellt, die jeder beherrschen sollte.

ReguläresObjekt

rekompilierenFunktiongemäß einem MusterStringund können Das ausgewählte Flag-Argument generiert ein regulärer Ausdruck-Objekt. Dieses Objekt verfügt über eine Reihe von Methoden zum Abgleichen und Ersetzen regulärer Ausdrücke. Es gibt geringfügige Unterschiede in der Verwendung. Um beispielsweise eine Zeichenfolge abzugleichen, können Sie die folgende Methode verwenden:

Wenn Sie „compilieren“ verwenden, wird daraus:

Warum müssen Sie es verwenden? so was? Tatsächlich werden reguläre Ausdrucksobjekte wiederverwendet, um die Geschwindigkeit des Abgleichs regulärer Ausdrücke zu verbessern. Vergleichen wir die Effizienz der beiden Methoden:

Detaillierte Erläuterung der erweiterten Verwendung regulärer Python-Ausdrücke

Sie sehen, dass die zweite Methode viel schneller ist. Bei der tatsächlichen Arbeit werden Sie feststellen, dass der Effekt umso besser ist, je mehr Sie kompilierte Objekte mit regulären Ausdrücken verwenden.

Gruppe(Gruppe)

Möglicherweise haben Sie die Verwendung der Gruppierung passender Inhalte gesehen:

Detaillierte Erläuterung der erweiterten Verwendung regulärer Python-Ausdrücke

Durch das Hinzufügen von Klammern zu den abzugleichenden Objekten können Sie die Abgleichsergebnisse genau abgleichen. Wir können auch eine verschachtelte Gruppierung durchführen:

Detaillierte Erläuterung der erweiterten Verwendung regulärer Python-Ausdrücke

Gruppierung kann die Anforderungen erfüllen, aber manchmal ist die Lesbarkeit schlecht, dann kann die Gruppierung benannt werden:

Detaillierte Erläuterung der erweiterten Verwendung regulärer Python-Ausdrücke

Jetzt ist die Lesbarkeit sehr hoch.

String-Matching

Schüler, die sed gelernt haben, haben möglicherweise die folgende Ersetzungsverwendung gesehen:

Diese 1 stellt das Ergebnis des vorherigen regulären Matchs dar. Der obige Sed dient dazu, den übereinstimmenden Ergebnissen eckige Klammern hinzuzufügen.

hat auch diese Verwendung im re-Modul:

Detaillierte Erläuterung der erweiterten Verwendung regulärer Python-Ausdrücke

Es ist auch möglich, benannte Gruppierung zu verwenden:

Detaillierte Erläuterung der erweiterten Verwendung regulärer Python-Ausdrücke

Schauen Sie sich um

Das Modul unterstützt auch Nearest Matching, schauen Sie sich einfach das Beispiel an:

Detaillierte Erläuterung der erweiterten Verwendung regulärer Python-Ausdrücke

Verwenden Sie die Funktion

beim regulären Matching Das meiste, was wir zuvor gesehen haben, ist das Matching eines Ausdrucks, aber manchmal sind die Anforderungen viel komplexer, insbesondere beim Ersetzen.

Zum Beispiel können Chat-Datensätze über die Slack-API abgerufen werden, wie zum Beispiel der folgende Satz:

Unter ihnen sind und Bei Slack müssen Sie diese Korrespondenz über andere Schnittstellen abrufen.

Das Ergebnis sieht ähnlich aus:

Nach dem Parsen der Korrespondenz hoffe ich auch, dass die spitzen Klammern entfernt werden nach der Ersetzung steht „@xiaoming, @laolin Ja, das ist tatsächlich so“

Wie kann man das mit regulären Ausdrücken erreichen?

Detaillierte Erläuterung der erweiterten Verwendung regulärer Python-Ausdrücke

Muster kann also natürlich auch eine Funktion sein

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der erweiterten Verwendung regulärer Python-Ausdrücke. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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