使用python regex,只有那些匹配我的模式,但不包含'='

时间:2019-03-07 19:12:07

标签: python regex

我是regex的新手。我正在使用正则表达式来匹配url,其中一些结果包含=。我只希望那些网址与我的模式匹配,但不包含=

我的模式是\S+google.com\/\S+-\S+

例如:

  1. 匹配:www.google.com/aa-bb

  2. 不匹配:google.com/

  3. 不匹配:www.google.com/aa-bb=cc

我当前的模式匹配1和3,但我只希望1

有了这个答案Regular expression to match a line that doesn't contain a word?,我已经尝试过(?=((?!=).)*)(?=\S+google.com\/\S+-\S+),试图将两者的匹配结果相交。但是正则表达式似乎无法以这种方式工作。

Python Regex请仅回答。谢谢!

1 个答案:

答案 0 :(得分:3)

\S更改为[^\s=],使其与空格或=不匹配。

您还应该使用^$锚定模式,因此它必须匹配整个URL。否则,它将与www.google.com/aa-bb的{​​{1}}部分匹配。

www.google.com/aa-bb=cc

您还应该在正则表达式中转义文字^\S+google\.com\/[^\s=]+-[^\s=]+$