2

我目前有以下正则表达式来匹配日期:

([012]?\d)[\/.-]([0123]?\d)[\/.-]([012]\d{3})\b

例如,这将匹配12/24/2011。我将如何制作正则表达式,使其也与项目之间的空格匹配,12 24 2011

4

5 回答 5

4

在字符类中添加空格字符:

[\/. -]
    ^
于 2012-04-19T06:47:48.353 回答
3

您的问题已经得到解答,但我发现您的正则表达式存在其他一些问题。

  1. 为什么只在末尾有边界这个词?您也应该在开始时使用它。

  2. 您的正则表达式也将匹配“1.3/2012”之类的内容。您可以通过使用反向引用轻松改进这一点。

  3. 您需要所有这些捕获组吗?

所以我的建议是这样

\b([012]?\d)([\/. -])([0123]?\d)\2([012]\d{3})\b
            ^^^^^^^^^           ^^
         store the first       match
         occurence in          group 2
         group 2

在 Regexr 上查看

于 2012-04-19T07:26:02.850 回答
1

用这个:

([012]?\d)[ \/.-]([0123]?\d)[ \/.-]([012]\d{3})\b

我认为您必须先添加空格。

于 2012-04-19T06:52:36.793 回答
0
([012]?\d)([\/.-]|\s)([0123]?\d)([\/.-]|\s)([012]\d{3})\b
于 2012-04-19T06:49:55.847 回答
0
([012]?\d)[\/.-\s]([0123]?\d)[\/.-\s]([012]\d{3})\b
于 2012-04-19T07:11:16.877 回答