You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何用Python正则表达式从字符串中提取位置与时间戳?

从预订文本提取位置和时间的Python正则方案

嘿,刚入门Python完全不用慌!针对你提出的提取需求,咱们可以用精准的正则表达式一次性搞定两个子串的提取,直接看方案就行:

核心代码示例

import re

# 示例输入文本
booking_text = "Your booking at Crown Street - June 29th, 1:00pm"

# 匹配规则:用捕获组锁定位置和时间
pattern = r"Your booking at (.*?) - (.*)"

# 执行匹配
match_result = re.match(pattern, booking_text)

if match_result:
    # 提取第一个捕获组的位置内容
    location = match_result.group(1)
    # 提取第二个捕获组的时间戳内容
    timestamp = match_result.group(2)
    
    print(f"提取到的位置: {location}")  # 输出:Crown Street
    print(f"提取到的时间戳: {timestamp}")  # 输出:June 29th, 1:00pm

正则规则解释

我特意写了最贴合你需求的规则,每部分都严格对应你的边界要求:

  • Your booking at :精准匹配固定前缀(注意后面的空格,和示例完全对齐)
  • (.*?):第一个非贪婪捕获组,专门匹配位置——非贪婪模式(?)会让它在遇到第一个 -(空格+横杠)时就停止,完美卡在你要的位置边界里
  • -:匹配分隔位置和时间的固定分隔符
  • (.*):第二个捕获组,直接匹配分隔符之后的所有内容作为时间戳,因为时间戳是文本的最后部分

小提示

如果你的实际文本里,分隔符前后的空格可能有变化(比如多空格、少空格),可以把规则里的空格改成\s*(匹配任意数量的空白字符),调整后的正则是:

pattern = r"Your booking at\s*(.*?)\s*-\s*(.*)"

这样兼容性更强,但如果是严格按照示例格式的文本,第一个正则就足够精准啦~

内容的提问来源于stack exchange,提问作者Tim Butler

火山引擎 最新活动