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

Python正则表达式匹配日期:\b与\Y能否这样使用?

问题解答

首先明确:你不能这么使用\b和\Y,原因和正确的实现方式如下:

关于\b和\Y的问题

  • \b是Python正则支持的单词边界,但你写的\d\b只是匹配单个数字加单词边界,完全没贴合你要找的日期格式,逻辑上就不对。
  • \Y在Python的re模块里根本不存在,它是Perl、PCRE这类正则引擎的语法,用来匹配Unicode单词的结尾,Python不支持这个锚点,写了只会导致匹配失败甚至语法问题。

正确匹配01-JAN-2023格式日期的正则

要匹配两位数字-三位月份缩写-四位数字的日期,正则需要覆盖日、月份、年的格式要求,示例代码如下:

import re

rext = 'This is the testing text with 01-Jan-2023'

# 匹配指定格式的日期,支持大小写的月份缩写
match = re.search(r"\b\d{2}-(?:JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)-\d{4}\b", rext, flags=re.IGNORECASE)
print(match.group() if match else "No match")

正则各部分说明

  • \b:确保日期前后是单词边界,避免匹配到类似101-Jan-2023这种包含目标格式的更长字符串
  • \d{2}:匹配两位数字的日期(比如01、31)
  • (?:JAN|FEB|...|DEC):非捕获组,列出所有三位英文月份缩写,用|分隔表示“或”的关系
  • \d{4}:匹配四位数字的年份(比如2023、2024)
  • flags=re.IGNORECASE:让正则不区分大小写,能匹配Jan、JAN、jan等不同写法的月份

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 11:00:42