我是regex的新手。我正在使用正则表达式来匹配url,其中一些结果包含=
。我只希望那些网址与我的模式匹配,但不包含=
。
我的模式是\S+google.com\/\S+-\S+
例如:
匹配:www.google.com/aa-bb
不匹配:google.com/
不匹配: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请仅回答。谢谢!
答案 0 :(得分:3)
将\S
更改为[^\s=]
,使其与空格或=
不匹配。
您还应该使用^
和$
锚定模式,因此它必须匹配整个URL。否则,它将与www.google.com/aa-bb
的{{1}}部分匹配。
www.google.com/aa-bb=cc
您还应该在正则表达式中转义文字^\S+google\.com\/[^\s=]+-[^\s=]+$
。