首页 > 解决方案 > 使用 python 正则表达式,只有那些匹配我的模式但不包含'='

问题描述

我是正则表达式的新手。我正在使用正则表达式来匹配 url,一些结果包含=. 我只希望那些 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

有了这个答案,正则表达式匹配不包含单词的行?,我试过(?=((?!=).)*)(?=\S+google.com\/\S+-\S+),试图相交两个匹配的结果。但似乎正则表达式不能以这种方式工作。

请仅 Python Regex 回答。谢谢!

标签: pythonregex

解决方案


更改\S[^\s=]使其不匹配空格或=.

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

^\S+google\.com\/[^\s=]+-[^\s=]+$

您还应该.在正则表达式中转义文字。


推荐阅读