Regex 正则表达式以删除包含word的行,但有例外

Regex 正则表达式以删除包含word的行,但有例外,regex,Regex,我在PowerGrep中使用这个正则表达式(这个正则表达式搜索字符串LAB RAD TRAN) 搜索和删除纯文本中包含字符串或部分字符串的行,效果非常好 现在我需要更多的东西。我想保留单词LABER,但删除包含LAB的所有其他字符串,如LABOR、LAB1、ALAB、ALABA等。 有没有一种方法可以“保护”一个字符串标签机并删除其他所有包含LAB的字符串? 试图使用*更改上述正则表达式,但它始终包含我需要保留的单词LABER。有什么解决方案吗?您可以通过前瞻的方式在表单中向正则表达式添加排除项

我在PowerGrep中使用这个正则表达式(这个正则表达式搜索字符串LAB RAD TRAN)

搜索和删除纯文本中包含字符串或部分字符串的行,效果非常好

现在我需要更多的东西。我想保留单词LABER,但删除包含LAB的所有其他字符串,如LABOR、LAB1、ALAB、ALABA等。 有没有一种方法可以“保护”一个字符串标签机并删除其他所有包含LAB的字符串?
试图使用
*
更改上述正则表达式,但它始终包含我需要保留的单词LABER。有什么解决方案吗?

您可以通过前瞻的方式在表单中向正则表达式添加排除项:

(?m)^.*(LAB(?!(?:ER|OV)\b)|RAD|TRAN).*$
(?!(?:ER | OV)\b)
lookahead将检查序列
LAB
后面是否有
ER
OV
和单词边界

我在“前瞻”中添加了替换项,因为您要求“保护”
LABER
LABOV


此外,由于您正在查找整行,因此可以使用多行模式
(?m)
^
/
$
锚定。

我认为PowerGrep支持查找断言;如果是这样,这应该是可行的:

.*((LAB(?!ER\b))|(RAD)|(TRAN)).*\r\n

尽管这会让任何事情都以LABER结尾,而不仅仅是整个单词。

当你评论时,我正在修复它,@AndrisLeduskrasts。不过,它仍然排除了以-LABER结尾的任何内容。不过,这是OP给出的解决方案的一个问题,就像他的任何一句话一样,
fooTRAN
。他也可以在所有单词之前添加一个边界。对不起,我在问题中犯了一个错误,我只想保留单词LABER。没关系,现在你知道如何为这个正则表达式添加替代项了。如“代码> ELABER 这样的词有问题,但我希望在您的输入中没有这样的词。欢迎您,如果它被证明是有帮助的,请考虑投票。现在,您有这个特权。我使用了这个解决方案,它很好,谢谢。现在,我试图找到相反问题的解决方案,正则表达式可以出售包含字符串球的每一行,除了包含足球的行,这是可能的吗?我尝试了以下方法:.*try
*(?带大小写忽略选项)。
.*((LAB(?!ER\b))|(RAD)|(TRAN)).*\r\n