我有这个正则表达式,如果找不到单词列表,它会匹配某个单词:
(?<![Yy]ellow |[Bb]lue |[Rr]ed |[Pp]urple |[Bb]lack )[Cc]olor
它可以工作,但我得到了正则表达式错误:“Look-Back需要固定宽度的模式”。我不能访问Python代码。我试着用(?:^
和|$)
分隔,就像我在一个类似的问题中看到的那样,但不起作用。我还发现了this answer,我认为它解决了问题,但我不知道如何让它在我的情况下工作。
测试HERE
Dark Color #match
light color #match
Blue Color
red color
that is a blue color and theme
opaque color #match
purple color
2条答案
按热度按时间t98cgbkg1#
如果您只想要匹配,则可以使用单独的LoopBackAssert在Look Back中拆分备选方案。
如果不需要部分单词匹配,可以从单词边界
\b
开始请参阅regex demo
如果您无法控制Python代码,则可以检查匹配您不想要的内容并返回您想要的内容的捕获组是否也有效:
Regex demo
vmdwslir2#
我可以通过使用否定的“前视”来表述您的正则表达式,从而绕过固定宽度的后视问题,它没有这个限制:
下面是一个正在运行的Python脚本: