2015-12-11 46 views
2

修改我的正则表达式需要在正则表达式

'\d{2}[-/.]\d{2}[-/.]\d{4}' # For dd-mm-yyyy or dd/mm/yyyy or dd.mm.yyyy. 

但是,它也从字符串拉出dd-mm.yyyydd/mm-yyyy。我需要严格匹配日期,即dd-mm-yyyydd/mm/yyyydd.mm.yyyy

+0

我只是用'|'来分隔所有3种格式,但我用正则表达式不太好:) –

回答

2

您可以使用此:

\d{2}([-/.])(\d{2}|[a-zA-Z]{3})\1\d{4} 

([-/.])将匹配-/.为一组,并在\1这个表达式的任何地方都会参考该组匹配相同的文本。

查看演示here

+0

使用你的建议我尝试写这个正则表达式 - '\ d {1,2}([ 。])\ b \ w {3} \ b \ 1 \ d {2,4}'应该匹配'dd-mon-yyyy'(例如 - 2015年12月30日)。但它也匹配30-333-2015。有什么方法可以验证它吗?还是应该通过编程来完成? –

+1

我已经更新了我的答案。 – 0605002