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

deu*_*on0 0 regex notepad++

我绞尽脑汁想弄清楚如何解决这个问题.以下是我的文本文件中的一些示例记录:

active users 8D1DF3
active users by test 8D04R0
active users by maker 8DZZ99
active users by report class 8D2CV6
Run Code Online (Sandbox Code Playgroud)

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

8D1DF3
8D04R0
8DZZ99
8D2CV6
Run Code Online (Sandbox Code Playgroud)

在我的研究中,我发现有可能根据发现的字符串删除行,而不是从我想要保留的字符串以外的行中删除所有文本的能力.关于如何实现这一目标的任何线索将非常感激.

rev*_*evo 5

试试下面的正则表达式:

(?<!\S)(?!8D)\S+|\h+
Run Code Online (Sandbox Code Playgroud)

并且什么也没有替换.

在这里查看现场演示

分解:

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

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

  • \S+ 匹配其余的

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