С регулярным выражением Python, только те, которые соответствуют моему шаблону, но НЕ содержат '=' - PullRequest
0 голосов
/ 07 марта 2019

Я новичок в регулярных выражениях.Я использую регулярное выражение для сопоставления URL, некоторые результаты содержат =.Я хочу, чтобы только те URL соответствовали моему шаблону, но не содержат =.

Мой шаблон \S+google.com\/\S+-\S+

Например:

  1. MATCH: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 отвечает только, пожалуйста.Спасибо!

1 Ответ

3 голосов
/ 07 марта 2019

Измените \S на [^\s=], чтобы оно не совпадало с пробелами или =.

Вы также должны привязать шаблон к ^ и $, чтобы он соответствовал всему URL. В противном случае он будет соответствовать www.google.com/aa-bb части www.google.com/aa-bb=cc.

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

Вы также должны экранировать литерал . в регулярном выражении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...