正则表达式,以包括所有特定模式并仅排除一种情况

Regular expression to include all specific pattern and exclude only one case

本文关键字:排除 情况 一种 包括所 模式 正则表达式      更新时间:2023-09-26

我正在做一些排除某些URL的工作。

除了/login.google.com/ 之外,我希望所有URL都具有模式/google.com/

因此:

  • account.google.com应通过
  • google.com应通过
  • google.com/abc应通过
  • http://google.com应通过
  • login.google.com而不是通过

我正在尝试的代码是

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

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

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

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

更新:根据有用的评论进行了修改。不确定有效的域名字符类是什么——猜测是['w-]。看见http://rubular.com/如果你想玩的话。

此正则表达式应该适用于您:

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

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

Javascript语法:

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

尝试此模式以匹配问题中列出的数据:

/^(account'.)?google'.com/