2017-06-17 228 views
1

我想要一个匹配今年的正则表达式,用连字符分隔。示例正则表达式来检查字符串是否包含年份

1986-2004 
2001-2007 

基本上,它应该只允许每年4位数,而不是少于或多于那么它应该用连字符分隔。

我试图建立的比赛,直到1986-

^[0-9]{4}+[-]{1}+[0-9]*$ 

当我尝试一些这样的事

^[0-9]{4}+[-]{1}+[0-9]{4}*$ 

{4}在去年它给模式错误是什么正则表达式。请帮助我如何在模式结尾添加{4}

回答

2

*表示“任意次数”,与{4}发生冲突,意思是“四次”。刚落*和你应该确定:

^[0-9]{4}+[-]{1}+[0-9]{4}$ 
+1

Thanks @Mureinik – FaisalAhmed

0

你去那里:

^[0-9]{4}+[-]{1}+[0-9]{4}$ 

这里是一个不错的在线工具来验证您的正则表达式:RegexPlanat

0

你的正则表达式允许接下来的几年太:8970-9047,0120-0110,0000-0000。可能会更好地使用该模式,这将检查边界。例如,如下所示:

\b(18|20)\d{2}\b[-]\b(18|20)\d{2}\b 
相关问题