首页 > 解决方案 > 正则表达式:查找包含“a”、“b”且不包含“c”的字符串

问题描述

我有一个像这样的字符串:

someURL&screenName=anyScreen&category=/any/EndPoint&carousel=/Catalog/something

可以是许多带有 &category 和 &carousel 参数的字符串,也可以不带。

我需要两个正则表达式:

  1. 查找包含 '&screenName=anyScreen' 的字符串还包含 '&category=' 并包含 '&carousel=' 参数

只是这样做:

.*&screenName=anyScreen.*&category=.*&carousel=.*$

也许你会解释一些更好的方法来找到它。但是,这 ^^ 对我来说很好。

我遇到了第二个正则表达式的问题:

  1. 查找包含“&screenName=anyScreen”的字符串还包含“&category”且不包含“&carousel”

我试过这个:

.*&screenName=anyScreen.*&category=.*((?!&carousel=).)*$

据我所知 ((?!&carousel=).)*$ 应该作为 Negative Lookahead 工作,并且应该排除带有这个单词的字符串,但是这个正则表达式对我不起作用。我做错了什么?

ps 将在 python 中使用正则表达式

标签: pythonregex

解决方案


推荐阅读