为了匹配这些例子:
1-10-1
1-7-3
10-8-5
1-7-14
11-10-12这个regex起作用:
^[\\d]{1,2}-[\\d]{1,2}-[\\d]{1,2}$怎么才能用一种与"[\d]{1,2}-?“这样的东西相匹配的方式写三次呢?
发布于 2021-06-18 08:43:07
你可以使用:
^\d\d?(?:-\d\d?){2}$请看在线演示。
^ -启动线锚.\d\d? -一个单数,后面跟着一个可选的数字(与\d{1,2}相同)。(?:-\d\d?){2} -一个以连字符开头的非捕获组,后面跟着与上面相同的构造,一个或两个数字。捕获组被重复了两次。$端字符串锚.这里的想法是避免在您所做的尝试中使用可选的连字符,因为基本上您将开始允许"123“和"123456”这样的完全不同的东西。更合适的方法是匹配分隔字符串的第一个元素,然后使用非捕获组来匹配分隔符和其他所需的元素,确切地说是n-1时间。
https://stackoverflow.com/questions/68031602
复制相似问题