正则表达式-查找包含一个单词或其子字符串但不包含特定字符的字符串

时间:2019-07-16 14:54:52

标签: regex

我应该匹配任何包含“ checkout”或“ checkout.html”而不是“?”的字符串。使用正则表达式。

例如:

www.xxx.com/en/cp/checkout.html?basket_gotostep=4  FALSE
www.xxx.com/en/cp/checkout.html=test  OK
www.xxx.com/en/cp/checkout=test_23   OK
www.xxx.com/en/cp/checkout?basket_gotostep=4 FALSE

这是我尝试过的方法:((checkout\.html)(?!\?))|((checkout)(?!\?)),但是它不起作用。

1 个答案:

答案 0 :(得分:1)

您可以使用正则表达式,例如

\bcheckout\b(?!(?:\.html)?\?)

\/checkout\b(?!(?:\.html)?\?)

请参见regex demo

详细信息

  • \/checkout\b-/checkout之后是单词边界检查
  • (?!(?:\.html)?\?)-如果在当前位置的右侧紧邻有一个可选的.html序列和一个?字符,则负匹配将使匹配失败。