假设我有以下内容:
1.) /some/text/here/with-dashes/010101/
2.) /some/text/here/too/
3.) /some/other/really-long/text/goes/here/019293847/
到目前为止,我想获取包含 EXACTLY 6 个 / 的字符串,这些正则表达式无法正常工作:
(/\w+[-]?\w+){6}
(/\w+[-]?\w+){6,6}
(/\w+[-]?\w+){,6}?
这些正则表达式也匹配超过 6 个 / 的字符串,我希望它匹配 EXACTLY 6 个 / 的字符串。
请您参考如下方法:
恰好六个匹配项的正确语法是 {6},如您的第一个示例。
您使用的正则表达式匹配超过六次目标字符串的原因是它们没有锚定到字符串的开头和结尾。如果一个字符串有(比方说)十次出现的路径组件,它与前六次匹配,所以这很重要。
要解决此问题,请使用例如:
^(/\w+[-]?\w+){6}$
或者允许一个可选的结束斜杠:
^(/\w+[-]?\w+){6}/?$
