【发布时间】:2016-02-15 15:58:43
【问题描述】:
我想知道如何匹配“2014 年 10 月 21 日”或“2014 年 10 月 21 日”这样的日期
到目前为止我所做的是\b(?:Jan?|?:Feb?|?:Mar?|?:Apr?|?:May?|?:Jun?|?:Jul?|?:Aug?|?:Sep?|?:Oct?|?:Nov?|?:Dec?) [0-9]{1,2}[,] (?:19[7-9]\d|2\d{3})(?=\D|$),但这并没有让我得到任何结果
- 简而言之,我需要匹配的字符串为:“Month[space]Day[comma][space]Year” 我不在乎闰年和月份的天数应该在 1 到 31 之间,没有前导 0
- 我需要这个正则表达式才能在 python 上工作
【问题讨论】:
-
你能添加所有可能的输入字符串吗,有效的和无效的
-
另外,你应该添加完整的代码而不是
... -
我打赌你忘了:1) 正则表达式分隔符,2) 双反斜杠,3) 在regex101.com 测试它。它是用什么语言写的?什么是正则表达式?
-
@WiktorStribiżew 我猜,这回答了问题。
-
@Tushar 实际上我只需要像“2014 年 10 月 21 日”这样的月份缩写,而所有不是这种格式的“月[空格]日[逗号][空格]年”应该是无效的。我不关心闰年,天数可以是 1 到 31 之间的任何值。请注意,天数只是 1 而不是 01。@ Wiktor 我正在使用 python 来处理这个正则表达式,并尝试了 regex101,但没有成功。这是完整的正则表达式: \b(?:Jan?|?:Feb?|?:Mar?|?:Apr?|?:May?|?:Jun?|?:Jul?|?:Aug?|? :Sep?|?:Oct?|?:Nov?|?:Dec?) [0-9]{1,2}[,] (?:19[7-9]\d|2\d{3} )(?=\D|$)
标签: regex