Extrahieren bestimmter Daten in einer Datei mit Regex [geschlossen]

0

Folgende Informationen möchte ich aus einer Datei extrahieren, die eine andere Version, ein anderes Veröffentlichungsdatum und eine andere CVE-Nummer hat. Kann mir jemand zeigen, wie man diese Informationen mit Regex abruft?

    Release date: March 13, 2007
    Vulnerability identifier: APSB07-07
    CVE number: CVE-2007-1278
    Platform: Windows only
Naiv
quelle

Antworten:

4

Wenn Sie den Kopf nicht um Regex wickeln können, verwenden Sie ihn nicht. In den meisten Fällen können Sie es durch reguläre Python-String-Funktionen ersetzen.

Kleines Beispiel für Ihre Daten:

>>> s = """    Release date: March 13, 2007
...     Vulnerability identifier: APSB07-07
...     CVE number: CVE-2007-1278
...     Platform: Windows only"""
>>> for line in s.split("\n"):
...     if "Release date:" in line:
...         print line.split("Release date: ")[1]
...     if "CVE number:" in line:
...         print line.split("CVE number: ")[1]
... 
March 13, 2007
CVE-2007-1278
>>>

Dies kann natürlich verbessert werden, aber es soll Ihnen nur zeigen, dass es ohne Regex ganz einfach ist.

Vergiss niemals das berühmte Zitat:

Einige Leute denken, wenn sie mit einem Problem konfrontiert werden: „Ich weiß, ich werde reguläre Ausdrücke verwenden.“ Jetzt haben sie zwei Probleme.

Timo
quelle
Ich habe eine Datei mit einer anderen Plattform, einem anderen Veröffentlichungsdatum, einer anderen CVE-Nummer. Wie kann ich das tun?
Naive
@ Kummi_10: einfach die sVariable ersetzen und s.split("\n")im Beispiel mit den Daten aus der Datei lesen. Wahrscheinlich so etwas wiewith open("mydata.txt", "r") as infile: infile.read()
Timo
2

Abhängig davon, welche Informationen Sie aus der obigen Zeichenfolge extrahieren möchten, können Sie so etwas wie diesen Regex-Tester verwenden . Jedes Mal, wenn ich einen regulären Ausdruck schreibe, stelle ich damit sicher, dass er zuerst funktioniert.

JTate
quelle