条件正则表达式

2024-05-16 03:28:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Python,我想使用正则表达式来检查“是否是include列表的一部分”而“不是排除列表的一部分”。在

Myinclude list由正则表达式表示,例如:

And.*

一切以开头的东西。在

同样,排除列表由正则表达式表示,例如:

^{pr2}$

所有的东西,但不是弦安德里亚。排除列表显然是否定的。在

例如,使用上面的两个例子,我想匹配以开头的所有内容,除了Andrea。在

在一般情况下,我有一个includeRegEx和一个excludeRegEx。我想匹配匹配includeRegEx但不匹配excludeRegEx的所有内容。注意excludeRegEx仍然是负数形式(正如您在上面的示例中所看到的),所以最好说:如果某个内容与includeRegEx匹配,我检查它是否也匹配excludeRegEx,如果匹配,则表示匹配满足。是否可以在单个正则表达式中表示这一点?

我认为条件正则表达式可能是解决方案,但我不太确定。在

我想看看Python中的一个工作示例。在

非常感谢。在


Tags: and示例内容列表include情况形式list
1条回答
网友
1楼 · 发布于 2024-05-16 03:28:59

为什么不把两者都放在一个正则表达式中呢?在

And(?!rea$).*

由于lookahead只“向前看”而不消耗任何字符,所以它工作得很好(实际上,这就是lookaround的全部要点)。在

所以,在Python中:

^{pr2}$

从你问题的措辞来看,我不确定你是否从两个已经完成的“匹配/不匹配”列表开始。在这种情况下,您可以简单地通过连接regex来自动组合它们。这同样有效,但更难看:

(?!Andrea$)And.*

一般来说,那么:

(?!excludeRegex$)includeRegex

相关问题 更多 >