我是Python的完全新手,并且在任何可能的帮助之后。下面是示例文本字符串,我试图提取2个子字符串:
示例文字:您在皇冠街预订 - 6月29日下午1:00
位置子字符串在以下两个短语之间是“您的预订”和“ - ”。短语中包含的空格是故意的。在此示例中,我所需的输出字符串是 Crown Street 。什么是最好的Python正则表达式来实现这一结果?
时间戳子字符串在字符串中处理“ - ”表达式。在此示例中,我所需的输出字符串是 6月29日,下午1:00 。什么是最好的Python正则表达式来实现这一结果?
提前感谢您的帮助。
亲切的问候, 添
答案 0 :(得分:1)
import re
example = 'Your booking at Crown Street - June 29th, 1:00pm'
regex = re.compile(r'Your booking at (?P<location>.+) - (?P<timestamp>.+)$')
print(regex.match(example).groupdict())
输出
{'location': 'Crown Street', 'timestamp': 'June 29th, 1:00pm'}
请注意,如果位置名称中有-
,则可能会出现错误匹配;如果你总是确定有一个英文月份来开始时间戳,你可以使用(?P<timestamp>(?:Jan|Feb|Mar|...).+)
。
答案 1 :(得分:0)
使用re.search
<强>演示:强>
import re
text = "Your booking at Crown Street - June 29th, 1:00pm"
data = re.search("Your booking at\s+(.*)\s+\-\s+(.*)", text)
if data:
print(data.group(1))
print(data.group(2))
<强>输出:强>
Crown Street
June 29th, 1:00pm