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

如何使用regex正则表达式仅提取Admit、Adm:等关键词紧邻的日期

正则匹配关键词紧邻日期的修改方案

问题根源

原有正则中关键词与日期之间使用.*?匹配,规则过于宽松,允许两者间隔任意非换行字符,因此会误匹配到关键词后间隔大量无关内容的日期。


调整方案

核心修改是限制关键词和日期之间仅能出现空白字符(空格、制表符等),将原来的.*?替换为\s+,同时补充正则特殊字符转义避免规则失效。

修改后完整代码

import re
s = """Sentence 1: Admit on TOM, SINI [STOM] Dismissal Date: 07/20/2021
    Sentence 2: Admit 08/07/2021 TOM, SINI [STOM]
    Sentence 3: Adm: 09/07/2018 TOM, SINI [STOM]"""

admission_keys = ['Admit','Adm:']
# 正则规则添加raw标记避免转义异常
date_patterns = [r'\d{2}/\d{2}/\d{4}',r'\d{1,2}-\d{1,2}-\d{2,4}']
# 关键词和日期之间仅允许空白字符
pattern = re.findall(r"(?:" + '|'.join(admission_keys)  + r"\s+(?:" + '|'.join(date_patterns) + r'))',s)
print(','.join(pattern))

运行输出

Admit 08/07/2021,Adm: 09/07/2018

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 16:15:03