Regex 正则表达式以匹配以下日期格式

Regex 正则表达式以匹配以下日期格式,regex,Regex,我有一个正则表达式来匹配日期格式2015年9月23日或2015年9月23日或2015年9月23日 [a-zA-Z]{3}[. ]\d{2}'\d{2} 我能够匹配2015年9月23日和2015年9月23日,但不能匹配2015年9月23日 [a-zA-Z]{3}[. ]\d{2}'\d{2} 如何编写正则表达式以匹配空格和无空格?您可以使用以下正则表达式: [A-Za-z]{3}[\.\s]?\d{1,2}\'\d{2} 我建议匹配一个点(可选),然后使用*量词,而不是应用于空格的?: [a

我有一个正则表达式来匹配日期格式
2015年9月23日
2015年9月23日
2015年9月23日

[a-zA-Z]{3}[. ]\d{2}'\d{2}
我能够匹配
2015年9月23日
2015年9月23日
,但不能匹配
2015年9月23日

[a-zA-Z]{3}[. ]\d{2}'\d{2}

如何编写正则表达式以匹配空格和无空格?

您可以使用以下正则表达式:

[A-Za-z]{3}[\.\s]?\d{1,2}\'\d{2}
我建议匹配一个点(可选),然后使用
*
量词,而不是应用于空格的

[a-zA-Z]{3}\.?[ ]*\d{2}'\d{2}
           ^^^^^^^
这个正则表达式还将处理类似2015年9月23日的格式(在月和日之间有一个点和一个空格)

正则表达式解释:

  • [a-zA-Z]{3}
    -3个ASCII字母
  • \.?
    -1或0点
  • []*
    -如果您只需要匹配水平空格,则建议使用零个或多个规则空格(
    \h
    ,或
    \p{Zs}
    ,或
    [[:blank:]]
    ,具体取决于正则表达式的风格)
  • \d{2}'\d{2}
    -2位+
    '
    +2位

有关
[.]
,请参见使用
。回答:
[a-zA-Z]{3}[.]?\d{2}'\d{2}
谢谢,工作正常@字符类中的TusharA点已经匹配了一个文本
符号,无需对其进行转义。此外,OP可能不希望匹配任何空格(
\s
也匹配换行符)。您在演示中使用了
*
(不正确,因为它允许
Sep..23'15
有效),但使用了
(正确)。。。“为什么?”路易斯科洛拉多:我自己也很好奇为什么会发生这种事。我考虑了你的评论,重新考虑了我的答案,以便更好地表达我的观点。:)现在我对你的答案投了赞成票,尽管它允许同时使用这两种方法,如
Sep,23'15
(点后有几个空格)最好是
(\.\124;[]*)
,它允许一个点或一系列
0
或更多空格,但不能同时使用这两种方法。