You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python正则表达式提取指定标识后的日期(非固定间隔)

解决方案

方法1:使用Python 3.7+支持的可变长度正向断言

Python 3.7及以后版本允许正向断言(lookbehind)中使用可变长度表达式,可直接匹配目标标识后的第一个日期:

import re

target_text = "示例文本 Invoice Value (in INR): 任意内容 23/01/2023 其他内容"
pattern = r'(?<=Invoice Value \(in INR\):.*?)\d{1,2}\/\d{1,2}\/\d{4}'
result = re.search(pattern, target_text)
if result:
    print(result.group())  # 输出:23/01/2023
  • (?<=Invoice Value \(in INR\):.*?):正向断言匹配标识后的任意非贪婪内容,确保找到第一个出现的日期
  • \d{1,2}\/\d{1,2}\/\d{4}:匹配dd/mm/yyyy或d/m/yyyy格式的日期

方法2:兼容全Python版本的捕获组方案

如果需要兼容Python 3.7之前的版本,用捕获组提取目标日期更稳妥:

import re

target_text = "示例文本 Invoice Value (in INR): 任意内容 23/01/2023 其他内容"
pattern = r'Invoice Value \(in INR\):.*?(\d{1,2}\/\d{1,2}\/\d{4})'
result = re.search(pattern, target_text)
if result:
    print(result.group(1))  # 输出:23/01/2023
  • 先匹配目标标识,再用.*?非贪婪匹配到第一个日期前的内容,最后用()捕获日期部分
  • 从匹配结果的group(1)中提取目标日期即可

关键说明

  • 用.*?而非.*:非贪婪匹配避免跳过第一个日期,匹配到后续无关的日期
  • 转义特殊字符:(和)是正则特殊字符,需要用\转义

内容的提问来源于stack exchange,提问作者Kaustub Dutt Pandey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 23:06:32