Notepad ++删除文件中的所有文本,但不删除以8D开头的字符串

时间:2018-09-24 18:07:01

标签: regex notepad++

我正在绞尽脑汁想弄清楚如何解决我遇到的这个问题。这是我的文本文件中的一些示例记录:

active users 8D1DF3
active users by test 8D04R0
active users by maker 8DZZ99
active users by report class 8D2CV6

我正在尝试找到一种方法,以便在Notepad ++中使用正则表达式删除所有以8D开头的字符串之外的文本,结果将是这样:

8D1DF3
8D04R0
8DZZ99
8D2CV6

在我的研究中,我仅发现了根据发现的字符串删除行的可能性,而不是从我要保留的字符串之外的行中删除所有文本的能力。 关于如何实现此目标的任何线索将不胜感激。

2 个答案:

答案 0 :(得分:5)

请尝试以下正则表达式:

(?<!\S)(?!8D)\S+|\h+

然后什么也不要替换。

请参见live demo here

故障:

  • (?<!\S)不应以非空格字符开头(不应从中间开始匹配)

  • (?!8D)子字符串不应以8D

  • 开头
  • \S+匹配其余

  • |\h+或匹配水平空格

答案 1 :(得分:1)

您想要的正则表达式可能是这个,然后替换为'\1':

.*(8D.{4})

它实际上匹配所有内容,但是创建了一个'8D'(还有四个字符)的组,您可以将其用于replace