Heim  >  Artikel  >  Backend-Entwicklung  >  Erweiterte Verwendung regulärer Python-Ausdrücke

Erweiterte Verwendung regulärer Python-Ausdrücke

高洛峰
高洛峰Original
2017-01-12 16:25:441257Durchsuche

Für Python erfordert das Erlernen der Regelmäßigkeit das Erlernen der Verwendung des Moduls re. In diesem Artikel werden einige fortgeschrittene Techniken vorgestellt, die jeder beherrschen sollte.

Reguläres Ausdrucksobjekt kompilieren

Die re.compile-Funktion generiert ein reguläres Ausdrucksobjekt basierend auf einer Musterzeichenfolge und optionalen Flag-Parametern. 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 dient es dazu, die Geschwindigkeit des Abgleichs regulärer Ausdrücke zu verbessern und reguläre Ausdrucksobjekte wiederzuverwenden. Vergleichen wir die Effizienz der beiden Methoden:

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.

Gruppieren

Möglicherweise haben Sie die Verwendung des Gruppierens übereinstimmender Inhalte gesehen:

Python 正则表达式的高级用法

Pass Fügen Sie den zu erstellenden Objekten Klammern hinzu abgeglichen, um den Ergebnissen genau zu entsprechen. Wir können auch eine verschachtelte Gruppierung durchführen:

Python 正则表达式的高级用法

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

Python 正则表达式的高级用法

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 Matches dar. Der obige Sed dient dazu, den übereinstimmenden Ergebnissen eckige Klammern hinzuzufügen.

Es gibt auch eine solche Verwendung im re-Modul:

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

Umsehen (Umschauen)

Das

re-Modul unterstützt auch Nearby Matching. Schauen Sie sich zum Verständnis einfach das Beispiel an:

Python 正则表达式的高级用法

Verwenden Sie die Funktion

für reguläre Übereinstimmungen Das meiste, was wir zuvor gesehen haben, stimmt mit einem Ausdruck überein, aber manchmal sind die Anforderungen viel komplexer, insbesondere wenn es um Ersetzungen geht.

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

Unter ihnen sind <@U1EAT8MG9> und <@U0K1MF23Z> 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?

Python 正则表达式的高级用法

Muster kann also natürlich auch eine Funktion sein

Weitere Artikel zur erweiterten Verwendung regulärer Python-Ausdrücke finden Sie bitte Achten Sie auf PHP Chinese Net!


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