Python正则表达式从字符串中提取位置和时间戳

Python正则表达式从字符串中提取位置和时间戳,python,regex,Python,Regex,我是Python的新手,在得到任何可能的帮助之后。下面是我试图提取的2个子字符串的示例文本字符串: 位置 时间戳 示例文本:您在皇冠街的预订-6月29日下午1:00 Location子字符串位于以下两个短语之间,它们是常量“Your booking at”和“-”。短语中包含的空格是经过深思熟虑的。在本例中,我需要的输出字符串是Crown Street。实现这一结果的最佳Python正则表达式是什么 import re example = 'Your booking at Crown Stre

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

  • 位置
  • 时间戳
  • 示例文本:您在皇冠街的预订-6月29日下午1:00

    Location子字符串位于以下两个短语之间,它们是常量“Your booking at”和“-”。短语中包含的空格是经过深思熟虑的。在本例中,我需要的输出字符串是Crown Street。实现这一结果的最佳Python正则表达式是什么

    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())
    
    时间戳子字符串在字符串中处理“-”表达式。在本例中,我需要的输出字符串是6月29日下午1:00。实现这一结果的最佳Python正则表达式是什么

    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())
    

    请注意,如果位置名称中有一个
    -
    ,那么这可能会导致错误匹配;如果您始终确定时间戳的起始日期为英语月份,则可以使用
    (?P(?:Jan | Feb | Mar |…).+)

    使用

    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
    
    输出:

    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
    

    你能发布你尝试过的东西吗?我是新来的,所以只是尝试了谷歌的各种剪贴创意。对不起,我应该澄清一下。我需要两个正则表达式来分别提取位置和时间戳,而不是一个正则表达式。抱歉搞混了,这有关系吗?你可以放弃你当时不需要的价值。对不起,我应该澄清一下。我需要两个正则表达式来分别提取位置和时间戳,而不是一个正则表达式。抱歉造成混淆。感谢@Rakesh的回复,效果良好。是否有办法更改正则表达式,以将输出限制为仅位置,即“Crown Street”,使用示例作为参考。
    data=re.search(“您在\s+(.*)\s+\-”的预订,文本)如果数据:print(data.group(1))
    ?请接受任何一个帮助您的ans。谢谢