Python 正则表达式仅在未找到子字符串B时匹配子字符串A
这似乎已经被问了很多次,但我找不到任何答案来解决我的具体要求 具有如下输入字符串:Python 正则表达式仅在未找到子字符串B时匹配子字符串A,python,regex,regex-lookarounds,Python,Regex,Regex Lookarounds,这似乎已经被问了很多次,但我找不到任何答案来解决我的具体要求 具有如下输入字符串: 1. The road is closed. 2. Closed road ahead. 3. There is a closed lane. 4. The lane is closed. 仅当单词lane不是输入字符串的一部分时,哪个正则表达式与单词closed匹配?这在以下方面应尽可能一般: 单词lane可以存在于单词closed之前或之后 任何数量和类型的单词都可以位于lane和closed之间,而不仅
1. The road is closed.
2. Closed road ahead.
3. There is a closed lane.
4. The lane is closed.
仅当单词lane
不是输入字符串的一部分时,哪个正则表达式与单词closed
匹配?这在以下方面应尽可能一般:
- 单词
可以存在于单词lane
之前或之后closed
- 任何数量和类型的单词都可以位于
和lane
之间,而不仅仅是closed
或a
是上述示例中使用的
closed
,而不是在3和4中匹配(因为它们都包含禁止的单词lane
)
我尝试使用负lookaheads和lookbehinds执行此操作,但这仍然与所有四个输入字符串中出现的closed
匹配
(?<!lane)(?!lane)(closed)
(?
正则表达式风格是Python 3.4
^(?!.*\blane\b)(?=.*\bclosed\b).*$
试试这个。看演示
这是一个很好的解决方案。很酷!你还知道如何使它只匹配单词closed
而不是整个字符串吗?@Dirk only closed?你想提取它吗?嗯,不,匹配完整的行似乎足以完成我的任务。谢谢!测试你的reghex试试还是