我正在使用以下正则表达式 (PCRE) 来(非常基本地)验证以 http[s]://开头的 URL 并拒绝尾部斜杠:^https?://.+(?!/)$
但是,否定前瞻并不能阻止正则表达式将 url 与尾部斜杠匹配。
我知道我可以简单地使用 ^https?://.*[^/]$
但我想知道为什么前瞻不起作用。
最佳答案
前瞻检查字符串的最后一个字符(行尾之前的字符)是否后跟斜杠。不是,因为后面没有任何字符,所以 (?!/)
永远不会阻止比赛。
你可以用
^https?://.*(?!/).$
或者
^https?://.+(?<!/)$
关于regex - 为什么这个正则表达式不拒绝尾部斜杠(使用负前瞻)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6072139/