我试图找到一个正则表达式来匹配具有4个重复数字和介于两者之间的可选连字符的字符串,例如:
-3-3-3-3-
-1111-
2222-
0-0-00
目前我有:
\-?(\d(\-*))\1{3}\-?
与前两个匹配,但与后两个不匹配。有什么建议?
您可以使用
^-?(\d)(?:-?\1){3}-?$
请参阅regex演示。要在较大的字符串中找到模式,请删除^
和$
锚点:
-?(\d)(?:-?\1){3}-?
如果该模式是较长模式的一部分,则可能必须调整后向参考编号(如果该模式中还有其他捕获组)。
细节
^
-字符串开始-?
-可选 -
(\d)
-第1组:任意数字(?:-?\1){3}
-3次出现的可选-
值,然后与第1组中捕获的值相同-?
-可选的连字符$
-字符串的结尾。本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句