寻求提取嵌入式日期的正则表达式:从无间隔文本中获取应用更新日期
正则表达式提取更新日期解决方案
原正则的问题分析
你之前用的r"Updated on\.* \d+\.* 2023"存在几个关键问题:
Updated on后面写了\.*,但目标文本里这里根本没有点,反而Updated on和日期是直接连在一起的,没有空格- 匹配顺序错误,日期开头是月份缩写(比如Mar),不是数字,你先写了
\d+,根本匹配不到正确的起始位置
正确的正则表达式
直接针对文本结构写匹配规则,用捕获组提取目标日期:
import re text = "A lot of text here etc etc.Updated onMar 8, 2023#6and more text here with no spaces" pattern = r"Updated on([A-Z][a-z]{2} \d{1,2}, \d{4})" match = re.search(pattern, text) if match: print(match.group(1)) # 输出: Mar 8, 2023
正则规则解释
Updated on:精确匹配固定前缀,适配文本里和日期直接相连的情况([A-Z][a-z]{2}:匹配英文月份缩写(首字母大写,后两位小写,覆盖Jan/Feb/Mar等所有月份格式)\d{1,2}:匹配空格加1-2位数字的日期,同时支持1-9号和10-31号的格式, \d{4}):匹配逗号空格加四位年份,适配2023/2024这类标准年份格式
扩展适配(可选)
如果遇到月份缩写大小写不统一的情况,可以加上忽略大小写的标志:
match = re.search(pattern, text, re.IGNORECASE)
内容的提问来源于stack exchange,提问作者Enrique Ortiz Casillas
相关产品推荐
相关产品推荐

