我想要一个匹配今年与连字符分开的正则表达式。实例
1986-2004
2001-2007
基本上它应该每年只允许4位数而不是更少或更多,它应该用连字符分隔。
我试图在1986年建立比赛的正规格 -
^[0-9]{4}+[-]{1}+[0-9]*$
当我尝试这样的事情时
^[0-9]{4}+[-]{1}+[0-9]{4}*$
{4}去年它出现了模式错误。请帮助我如何在模式的末尾添加{4}
答案 0 :(得分:2)
*
表示“任意次数”,与{4}
发生冲突,意味着“四次”。只需删除*
就可以了:
^[0-9]{4}+[-]{1}+[0-9]{4}$
答案 1 :(得分:0)
答案 2 :(得分:0)
您的正则表达式也允许使用以下年份:8970-9047,0120-0110,0000-0000。可能会更好地使用模式,这将检查边界。例如,像这样:
\b(18|20)\d{2}\b[-]\b(18|20)\d{2}\b