


Python-Methode zum Extrahieren von Zeichenfolgen mithilfe eines regulären Ausdrucks
Vorwort
Ich werde nicht auf die Grundkenntnisse regulärer Ausdrücke eingehen. Wenn Sie interessiert sind, können Sie hier klicken. Einer ist das Extrahieren von Zeichen eine einzelne Position im Text, die andere besteht darin, Zeichenfolgen mit mehreren aufeinanderfolgenden Positionen zu extrahieren. Bei der Protokollanalyse wird diese Situation auftreten, und ich werde im Folgenden auf die entsprechenden Methoden eingehen.
1. String-Extraktion an einer einzelnen Position
In diesem Fall können wir zum Extrahieren den regulären Ausdruck (.+?) verwenden. Wenn wir beispielsweise für eine Zeichenfolge „a123b“ den Wert 123 zwischen ab extrahieren möchten, können wir findall mit einem regulären Ausdruck verwenden, der eine Liste mit allen übereinstimmenden Situationen zurückgibt.
Der Code lautet wie folgt:
import re str = "a123b" print re.findall(r"a(.+?)b",str)# 输出['123']
1.1 Greedy- und Non-Greedy-Matching
Wenn wir eine Zeichenfolge „a123b456b“ haben, wenn wir wollen Übereinstimmung mit a und dem letzten Alle Werte zwischen a und b anstelle der Werte zwischen a und dem ersten Vorkommen von b können zur Steuerung des regulären gierigen und nicht gierigen Abgleichs verwendet werden.
Der Code lautet wie folgt:
import re str = "a123b456b" print re.findall(r"a(.+?)b", str) #输出['123']#?控制只匹配0或1个,所以只会输出和最近的b之间的匹配情况 print re.findall(r"a(.+)b", str) #输出['123b456'] print re.findall(r"a(.*)b", str) #输出['123b456']
1.2 Mehrzeiliger Abgleich
Wenn Sie einen mehrzeiligen Abgleich wünschen, müssen Sie die Re. hinzufügen. S- und re.M-Flags. Nach dem Hinzufügen von re.S. Stimmt mit Zeilenumbruchzeichen überein, standardmäßig nicht.
Der Code lautet wie folgt:
str = "a23b\na34b" re.findall(r"a(\d+)b.+a(\d+)b", str) #输出[] #因为不能处理str中间有\n换行的情况 re.findall(r"a(\d+)b.+a(\d+)b", str, re.S) #s输出[('23', '34')]
Nach dem Hinzufügen von re.M stimmt die Markierung ^$ mit jeder Zeile überein. Standardmäßig stimmen ^ und $ nur mit der ersten Zeile überein.
Der Code lautet wie folgt:
str = "a23b\na34b" re.findall(r"^a(\d+)b", str) #输出['23'] re.findall(r"^a(\d+)b", str, re.M) #输出['23', '34']
2. String-Extraktion an mehreren aufeinanderfolgenden Positionen
In diesem Fall können wir
(?P<name>…)
Dieser reguläre Ausdruck zum Extrahieren. Wenn wir beispielsweise eine Zeile im Webserver-Zugriffsprotokoll haben:
'192.168.0.1 25/Oct/2012:14:46:34 "GET /api HTTP/1.1" 200 44 "http://abc.com/search" "Mozilla/5.0"'
und wir den gesamten Inhalt in dieser Protokollzeile extrahieren möchten, können wir mehrere
(?P<name>expr)
schreiben zu extrahieren, wo name Sie können es in die Variable ändern, die Sie als Positionszeichenfolge benannt haben, und expr kann in den regulären Ausdruck zum Extrahieren der Position geändert werden.
Der Code lautet wie folgt:
import re line ='192.168.0.1 25/Oct/2012:14:46:34 "GET /api HTTP/1.1" 200 44 "http://abc.com/search" "Mozilla/5.0"' reg = re.compile('^(?P<remote_ip>[^ ]*) (?P<date>[^ ]*) "(?P<request>[^"]*)" (?P<status>[^ ]*) (?P<size>[^ ]*) "(?P<referrer>[^"]*)" "(?P<user_agent>[^"]*)"') regMatch = reg.match(line) linebits = regMatch.groupdict() print linebits for k, v in linebits.items() : print k+": "+v
Das Ausgabeergebnis ist:
status: 200 referrer: request: GET /api HTTP/1.1 user_agent: Mozilla/5.0 date: 25/Oct/2012:14:46:34size: 44 remote_ip: 192.168.0.1
Zusammenfassung
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels jedem beim Lernen oder bei der Arbeit helfen kann. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen .
Das obige ist der detaillierte Inhalt vonPython-Methode zum Extrahieren von Zeichenfolgen mithilfe eines regulären Ausdrucks. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Lösung für Erlaubnisprobleme beim Betrachten der Python -Version in Linux Terminal Wenn Sie versuchen, die Python -Version in Linux Terminal anzuzeigen, geben Sie Python ein ...

In diesem Artikel wird erklärt, wie man schöne Suppe, eine Python -Bibliothek, verwendet, um HTML zu analysieren. Es beschreibt gemeinsame Methoden wie find (), find_all (), select () und get_text () für die Datenextraktion, die Behandlung verschiedener HTML -Strukturen und -Anternativen (SEL)

Dieser Artikel vergleicht TensorFlow und Pytorch für Deep Learning. Es beschreibt die beteiligten Schritte: Datenvorbereitung, Modellbildung, Schulung, Bewertung und Bereitstellung. Wichtige Unterschiede zwischen den Frameworks, insbesondere bezüglich des rechnerischen Graps

Bei der Verwendung von Pythons Pandas -Bibliothek ist das Kopieren von ganzen Spalten zwischen zwei Datenrahmen mit unterschiedlichen Strukturen ein häufiges Problem. Angenommen, wir haben zwei Daten ...

Dieser Artikel führt die Python-Entwickler in den Bauen von CLIS-Zeilen-Schnittstellen (CLIS). Es werden mit Bibliotheken wie Typer, Click und ArgParse beschrieben, die Eingabe-/Ausgabemedelung betonen und benutzerfreundliche Designmuster für eine verbesserte CLI-Usabilität fördern.

In dem Artikel werden beliebte Python-Bibliotheken wie Numpy, Pandas, Matplotlib, Scikit-Learn, TensorFlow, Django, Flask und Anfragen erörtert, die ihre Verwendung in wissenschaftlichen Computing, Datenanalyse, Visualisierung, maschinellem Lernen, Webentwicklung und h beschreiben

Der Artikel erörtert die Rolle virtueller Umgebungen in Python und konzentriert sich auf die Verwaltung von Projektabhängigkeiten und die Vermeidung von Konflikten. Es beschreibt ihre Erstellung, Aktivierung und Vorteile bei der Verbesserung des Projektmanagements und zur Verringerung der Abhängigkeitsprobleme.

Regelmäßige Ausdrücke sind leistungsstarke Tools für Musteranpassung und Textmanipulation in der Programmierung, wodurch die Effizienz bei der Textverarbeitung in verschiedenen Anwendungen verbessert wird.
