正则表达式,如何匹配所有网址,但一个?

时间:2014-05-22 19:30:30

标签: regex

我的正则表达式技能至少,我已经尝试了一段时间才能使其工作:

我需要匹配一个域中的所有URL,但只需一个(登录一个)。

示例:

匹配:domain.com/ANYTHING-GOES-HERE

不匹配:domain.com/login

我实际上并不需要匹配domain.com部分,因为它始终是相同的,后面是它。

我试过了:

(?!\/login)\/.*

\/.*[^login]

似乎没有人能按预期工作。

更新

我应该已经解释过这是用PHP完成的。我无法控制运行正则表达式的实际代码,但我可以控制我可以拥有多少正则表达式。所以我可以有一个匹配所有内容的正则表达式,然后有一个匹配或不匹配的正则表达式匹配“/ login”

1 个答案:

答案 0 :(得分:1)

你快到了:

// javascript
r = /domain\.com\/(?!login).+/
r.test("domain.com/ANYTHING-GOES-HERE") // true
r.test("domain.com/login") // false

这也拒绝"domain.com/login/foobar",如果您希望它被接受,请将正则表达式修改为

r = /domain\.com\/(?!login$).+/