我正在寻找一个能够匹配任何不包含反斜杠的正则表达式。我一直在试用http://regex101.com/#PCRE上的正则表达式,但谷歌并没有真正帮助它。
我想匹配任何看起来在路径中只有一个斜杠的网址字符串:
/path/page
/path/anypage
并且不匹配任何带有更多斜杠的网址:
/path/morepath/page
/path/morepath/andmorepath/page
到目前为止,我的正则表达式看起来像\/path\/[a-z]+
,但是也很乐意匹配带有更多斜杠的URL。
如何排除这些网址?
答案 0 :(得分:3)
具有否定的前瞻性或否定的等级。
否定课程:
^/path/[^/]*$
否定的类将匹配除了内部的所有内容,在这种情况下,正斜杠和末尾的锚$
确保字符串被测试直到结束。
否定前瞻:
^/path/(?!.*/)
如果内部匹配,那么否定前瞻将使整个匹配失败。因此,如果.*/
在否定前瞻点处匹配,则匹配将失败。
注意:我通常使用使用未出现在我的正则表达式中的字符的分隔符。在这种情况下,我将分隔符从/
更改为~
。
答案 1 :(得分:2)