2

我正在做一些事情来排除一些 URL。

我希望所有具有该模式的 URL /google.com/,除了/login.google.com/

所以:

  • account.google.com应该通过
  • google.com应该通过
  • google.com/abc应该通过
  • http://google.com应该通过
  • login.google.com应该通过

我正在尝试的代码是

/^(?!login\.)google\.com/
/^(login)google\.com/

但两者都不起作用。我错过了什么吗?

4

3 回答 3

5

假设您尝试匹配google.com除以 开头的地址之外的任何地址login.,您只需在.*之前添加一个google,即

/^(https?:\/\/)?(?!login\.)([\w-]+\.)?google\.com/

更新:根据有用的评论修改。不确定有效的域名字符类是什么 - 猜测是[\w-]。如果您想使用它,请参阅http://rubular.com/ 。

于 2013-07-26T18:15:00.193 回答
3

这个正则表达式应该适合你:

^(?:https?://)?(?!login\.)(?:.+?\.)?google\.com(?:/.*|)$

现场演示:http ://www.rubular.com/r/z69WSKV9cM

Javascript语法:

/^(?:https?:\/\/)?(?!login\.)(?:.+?\.)?google\.com(?:\/.*|)$/
于 2013-07-26T18:31:01.540 回答
-1

试试这个模式来匹配问题中列出的数据:

/^(account\.)?google\.com/
于 2013-07-26T18:12:19.200 回答