Notepad ++正则表达式反向匹配

时间:2015-11-24 21:40:20

标签: regex notepad++

我是Regex的新手,并试图弄清楚如何从Notepad ++中删除与#LCxxxx#LAxxxx不匹配的文件中的所有文本。以下示例(希望以粗体显示的文本):

  

1.在极少数情况下,重新安装此MSP文件可能会导致Citrix Display Driver .....

     

[来自ICAWS760WX86] [#0528688]

     

30.此版本包含增强功能......

     

[来自ICAWS760WX86022] [#LA3014 ]

     

此版本中的新修复

     

1.Windows Server 2008 R2和Windows Server 2012 R2,...

     

[来自ICAWS760WX86026] [#LC2179 ]

     

已替换的修补程序修复

     

1.如果是Windows远程桌面会话主机......

     

[来自ICAWS760WX86004] [#LC1180 ]

3 个答案:

答案 0 :(得分:2)

我认为this是您正在寻找的:

(?:[\S\s]*?)(\#L[AC]\d{4})(?:.*)

替换为:

$1\n

答案 1 :(得分:1)

您可以进行正则表达式搜索和替换,搜索

(#L[AC]....)

其中" dot匹配换行符"未被选中。替换为

\r\n\1\r\n

这将把所有想要的文本单独放在一行上。

接下来使用" Mark"查找窗口中的选项卡。选择"书签行",使用与上面相同的搜索字符串(这次不需要捕获括号,但它们是无害的,因此可以保留),然后点击"标记全部&#34 ;。现在所有想要的行都被加入书签。使用menu => 搜索 => 书签 => 删除未标记的行

可能有一种方法可以一次性完成所有操作,但这将是一个复杂的正则表达式。上面的方法使用了两个简单的步骤。

答案 2 :(得分:1)

  

从记事本++中删除与#LCxxxx或#LAxxxx

不匹配的文件中的所有文本
^.*(\[#L[CA]\d+\])$|^.*$

描述

Regular expression visualization

样本

https://regex101.com/r/hO1aL8/2

记事本++

按照以下屏幕截图中的描述进行搜索和替换:

enter image description here

或者,如果您想在替换操作期间摆脱空行,请使用下面的正则表达式:

^[\S\s]+?(\[#L[CA]\d+\])$
  • \s:空格(\ t,\ r,\ n \ n ...)
  • \S:除空格之外的任何字符。

Regular expression visualization

在记事本6.6.9上测试