假设我有以下内容:
1.) /some/text/here/with-dashes/010101/
2.) /some/text/here/too/
3.) /some/other/really-long/text/goes/here/019293847/
Run Code Online (Sandbox Code Playgroud)
我想得到包含完全6的字符串/到目前为止这些正则表达式不起作用我的意图如何:
(/\w+[-]?\w+){6}
(/\w+[-]?\w+){6,6}
(/\w+[-]?\w+){,6}?
Run Code Online (Sandbox Code Playgroud)
这些正则表达式也匹配超过6的字符串/我希望它匹配字符串与完全6 /.
正好六个匹配的正确语法与{6}第一个示例中的相同.
您正在使用的正则表达式匹配超过六次目标字符串的原因是它们没有锚定到字符串的开头和结尾.如果一个字符串有(比方说)十次出现的路径组件,那么它与前六个匹配,因此计数.
要解决此问题,请使用例如:
^(/\w+[-]?\w+){6}$
Run Code Online (Sandbox Code Playgroud)
或者允许可选的结束斜杠:
^(/\w+[-]?\w+){6}/?$
Run Code Online (Sandbox Code Playgroud)