当前位置: 首页 > 知识库问答 >
问题:

正则表达式,用于删除包含异常单词的行

籍光熙
2023-03-14

我在PowerGrep中使用这个正则表达式,(这个正则表达式搜索字符串实验室拉德TRAN)

.*((LAB)|(RAD)|(TRAN)).*\r\n

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

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

共有2个答案

尉迟晔
2023-03-14

您可以通过提前查看将排除项添加到表单中的正则表达式中:

(?m)^.*(LAB(?!(?:ER|OV)\b)|RAD|TRAN).*$

(?!(?:ER|OV)\b)前瞻将检查序列LAB后面是否没有EROV和单词边界。

我将交替添加到前瞻中,因为您要求“保护”LABERLABOV

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

傅琦
2023-03-14

我认为PowerGrep支持lookaround断言;如果是这样,这应该行得通:

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

虽然这将保留任何以LABER结尾的东西,而不仅仅是整个单词。

 类似资料:
  • 问题内容: 我知道可以匹配一个单词,然后使用其他工具(例如grep -v)将匹配项反转。但是,是否可以hede使用正则表达式来匹配不包含特定单词的行? 输入: 码: 所需的输出: 问题答案: 正则表达式不支持逆匹配的说法并不完全正确。您可以使用否定环顾模仿此行为: 上面的正则表达式将匹配任何不包含(sub)字符串’hede’的字符串或没有换行符的行。如前所述,这是不是正则表达式是“好”的(或应该做

  • 假设我有以下字符串 在所有应用程序上使用regex,是否有可能 i、 e.替换包含单词的模式的正则表达式,例如,从上面的被

  • 我试图从包含非alpha字符的字符串列表中删除单词,例如: 但我不能随意删除包含非alpha字符的单词,因为可能出现以下情况: 我需要想出一个正则表达式或类似的方法来处理这样的简单情况(所有类型的标点符号): 我使用一个自然语言包装类将句子转换为左侧的列表,但有时列表要复杂得多: 正如您所看到的,一些字符(如括号和撇号)被包装器转换或删除。我想将所有这些无关的子字符串处理成一个更干净的外观: 我对

  • 问题内容: 我有一组不同语言的单词(英语,波兰语,芬兰语,俄语等),需要检查一下,用大写字母写的是什么。 我尝试使用简单的正则表达式:,但仅匹配拉丁字母,然后添加了俄语大写字母:。 但是,许多 带有变音符号的unicode字母 仍然存在。如何将 所有 大写字母添加到正则表达式中? 可以不使用符号枚举就可以做到这一点吗? PS我知道,如何在Ruby中做到这一点,但现在我正在使用Python。 问题答

  • 问题内容: 问题: 有人可以给我一个有效的正则表达式(C#/ VB.NET),可以从SQL语句中删除单行注释吗? 我的意思是这些评论: 不是那些 因为我已经可以处理星级评论。 我做了一个小解析器,当它们在行的开头时删除了这些注释,但是它们也可以在代码之后或更糟的地方,在SQL字符串中。 那些注释也应该被删除(SQL字符串中的那些注释除外)。当然-如果可能的话)。 令人惊讶的是我没有使正则表达式工作

  • 是否有用于查找包含非罗马字符的单词的正则表达式? 以前我使用下面的正则表达式来查找单词< code>/(\w :)/,但是对于像“TV TT”这样的单词,正则表达式只查找非罗马字符“TT”后面的字母。如果我将正则表达式改为< code>/[a-zA-Z中心]\w :/,则包含字母“”,但不包含整个单词。我如何得到整个单词?