我正在玩正则表达式试图识别日期,我有以下正则表达式:
(([0]?[1-9])|^([1][3-9])|([1][0-2]))/([012]?[0-9]|[3][01])/[12][0-9][0-9][0-9]
问题是当我有一个不正确的日期(至少在美国)时,如14/02/2000仍然认为4/02/2000是一个日期。如何修改我的正则表达式,以便它不识别部分数字?
答案 0 :(得分:1)
您可以将正则表达式包装在单词边界中:\b
,以指示在第一个数字之前应该有一个非单词字符。
答案 1 :(得分:0)
怎么样:
^(([0]?[1-9])|([1][0-2]))\/([012]?[0-9]|[3][01])\/[12][0-9][0-9][0-9]$
我添加了^
和$
,并在第一段摆脱了^([1][3-9])
,我不明白它的目的是什么。我也逃过了斜杠(\/
)