Python Regex从字符串中提取位置和时间戳

时间:2018-05-21 13:39:57

标签: python regex

我是Python的完全新手,并且在任何可能的帮助之后。下面是示例文本字符串,我试图提取2个子字符串:

  1. 位置
  2. 时间戳
  3. 示例文字:您在皇冠街预订 - 6月29日下午1:00

    位置子字符串在以下两个短语之间是“您的预订”和“ - ”。短语中包含的空格是故意的。在此示例中,我所需的输出字符串是 Crown Street 。什么是最好的Python正则表达式来实现这一结果?

    时间戳子字符串在字符串中处理“ - ”表达式。在此示例中,我所需的输出字符串是 6月29日,下午1:00 。什么是最好的Python正则表达式来实现这一结果?

    提前感谢您的帮助。

    亲切的问候, 添

2 个答案:

答案 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