Ich habe eine Liste von Zeichenfolgen und möchte genaue Phasen zu finden.Python regex zu finden Phrasen genaue Worte enthalten
Bis jetzt findet mein Code nur den Monat und das Jahr, aber die gesamte Phase einschließlich "- Recorded" wird benötigt, wie "März 2016 - Recorded".
Wie kann es auf die "- Recorded" der Regex hinzufügen?
import re
texts = [
"Shawn Dookhit took annual leave in March 2016 - Recorded The report",
"Soondren Armon took medical leave in February 2017 - Recorded It was in",
"David Padachi took annual leave in May 2016 - Recorded It says",
"Jack Jagoo",
"Devendradutt Ramgolam took medical leave in August 2016 - Recorded Day back",
"Kate Dudhee",
"Vinaye Ramjuttun took annual leave in - Recorded Answering"
]
regex = re.compile('(?P<month>[a-zA-Z]+)\s+(?P<year>\d{4})\s')
for t in texts:
try:
m = regex.search(t)
print m.group()
except:
print "keyword's not found"
Uhm, fügen Sie '*' Ich denke, würde.. –
Oder '(?: \ W + \ w +)?' –
Könnten Sie bitte klarstellen: Möchten Sie nur den Text einschließen, der genau (equals) '- Recorded' ist? 'r '(? P [a-zA-Z] +) \ s + (? P \ d {4}) \ s (?: - \ s * aufgezeichnet)?' '? Oder irgendein 1 Wort nach einem oder mehreren Nicht-Wortzeichen (dann siehe meinen obigen Kommentar)? Oder der Rest der Linie (siehe Sebastians Kommentar)? –