Ich habe diese Daten aus dem E-Mail-Text extrahiert
Data=("""-------- Forwarded Message --------
Subject: Sample Report
Date: Thu, 6 Apr 2017 16:39:19 +0000
From: test1@abc.com
To: test2@xyz.com""")
Ich möchte dieses bestimmte Datum und diesen bestimmten Monat extrahieren und in die Variablen kopieren
Benötigen Sie Ausgabe als
Date = 6
Month = "Apr"
Kann mir bitte jemand dabei helfen, reguläre Ausdrücke zu verwenden?
3 Antworten
Sie können diesen regulären Ausdruck im mehrzeiligen Modus m
verwenden:
^Date:[^,]+,\ (\d+) (\w+)
Dadurch werden das Datum und der Monat in den Gruppen 1 bzw. 2 erfasst, sodass die Übereinstimmung leicht in zwei Variablen wie folgt entpackt werden kann:
date, month = re.search("^Date:[^,]+,\ (\d+) (\w+)", Data, re.MULTILINE).groups()
date = int(date)
print(date, month)
# output: 6 Apr
Sie können Regex verwenden, um das Datum zu extrahieren
Beispiel:
import re
from dateutil.parser import parse
s = """-------- Forwarded Message --------
Subject: Sample Report
Date: Thu, 6 Apr 2017 16:39:19 +0000
From: test1@abc.com
To: test2@xyz.com"""
date = re.search("Date(.*)$", s, re.MULTILINE)
if date:
date = date.group().replace("Date:", "").strip()
d = parse(date)
Date = d.day
Month = d.strftime("%b")
print(Date, Month)
Ausgabe:
6 Apr
Hinzufügen zur Lösung von @Rakesh,
import re
from datetime import datetime
data1 = re.sub(' ', '', data)
res = re.search(r'Date(.*)$', data1, re.MULTILINE).group()
res2 = datetime.strptime(res, 'Date:%a,%d%b%Y%X%z')
print(res2.day, res2.month)
Verwandte Fragen
Neue Fragen
python
Python ist eine dynamisch typisierte Mehrzweck-Programmiersprache mit mehreren Paradigmen. Es wurde entwickelt, um schnell zu lernen, zu verstehen, zu verwenden und eine saubere und einheitliche Syntax durchzusetzen. Bitte beachten Sie, dass Python 2 ab dem 01.01.2020 offiziell nicht mehr unterstützt wird. Fügen Sie für versionenspezifische Python-Fragen das Tag [python-2.7] oder [python-3.x] hinzu. Wenn Sie eine Python-Variante (z. B. Jython, PyPy) oder eine Bibliothek (z. B. Pandas und NumPy) verwenden, fügen Sie diese bitte in die Tags ein.