Regex 记事本++正则表达式反向匹配

Regex 记事本++正则表达式反向匹配,regex,notepad++,Regex,Notepad++,我不熟悉正则表达式,正在尝试找出如何从Notepad++中打开的文件中删除与LCxxxx或LAXXX不匹配的所有文本。下面的示例需要保留粗体的文本: 1.在极少数情况下,重新安装此MSP文件会导致Citrix显示驱动程序 [来自ICAWS760WX86][0528688] 30.此版本包括一个增强功能 [来自ICAWS760WX86022][LA3014] 此版本中的新修复程序 1.Windows Server 2008 R2和Windows Server 2012 R2 [摘自ICAWS760

我不熟悉正则表达式,正在尝试找出如何从Notepad++中打开的文件中删除与LCxxxx或LAXXX不匹配的所有文本。下面的示例需要保留粗体的文本:

1.在极少数情况下,重新安装此MSP文件会导致Citrix显示驱动程序

[来自ICAWS760WX86][0528688]

30.此版本包括一个增强功能

[来自ICAWS760WX86022][LA3014]

此版本中的新修复程序

1.Windows Server 2008 R2和Windows Server 2012 R2

[摘自ICAWS760WX86026][LC2179]

已替换修补程序的修复程序

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

[来自ICAWS760WX86004][LC1180]

我想这就是你想要的:

?:[\S\S]*?\L[AC]\d{4}?:*

替换为:

$1\n

我想这就是你想要的:

?:[\S\S]*?\L[AC]\d{4}?:*

替换为:


$1\n

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

(#L[AC]....)
未选择点匹配换行符的位置。取代

\r\n\1\r\n
这将把所有想要的文本放在一行上

接下来使用“查找”窗口中的“标记”选项卡。选择书签行,使用与上面相同的搜索字符串。这次不需要捕获括号,但它们是无害的,因此可以保留,然后单击全部标记。现在所有的通缉行都被书签了。使用菜单=>搜索=>书签=>删除未标记的行


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

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

(#L[AC]....)
未选择点匹配换行符的位置。取代

\r\n\1\r\n
这将把所有想要的文本放在一行上

接下来使用“查找”窗口中的“标记”选项卡。选择书签行,使用与上面相同的搜索字符串。这次不需要捕获括号,但它们是无害的,因此可以保留,然后单击全部标记。现在所有的通缉行都被书签了。使用菜单=>搜索=>书签=>删除未标记的行

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

从记事本++中打开的文件中删除与LCxxxx或LAXXX不匹配的所有文本

^.*\[L[CA]\d+\]$|^*$ 描述 演示 记事本++ 执行以下屏幕截图中描述的搜索和替换:

或者,如果要在替换操作期间去掉空行,请使用下面的正则表达式:

^[\S\S]+?\[L[CA]\d+\]$ \s:空白\t\r\n。。。 \S:除空格外的任何字符。 在记事本6.6.9上测试

从记事本++中打开的文件中删除与LCxxxx或LAXXX不匹配的所有文本

^.*\[L[CA]\d+\]$|^*$ 描述 演示 记事本++ 执行以下屏幕截图中描述的搜索和替换:

或者,如果要在替换操作期间去掉空行,请使用下面的正则表达式:

^[\S\S]+?\[L[CA]\d+\]$ \s:空白\t\r\n。。。 \S:除空格外的任何字符。

在记事本6.6.9上测试

它必须是记事本++的解决方案吗?似乎很容易通过python脚本或类似脚本运行该文件,将匹配的所有内容复制到另一个文件-o test.txt>output.txt仔细想想,因为Notepad++是一个Windows程序,您可能没有grep…不要进行搜索和替换。而是在文件中查找。这将把所有的匹配放在一个窗口中,你可以复制并粘贴到一个文件中。我还将尝试搜索和替换选项。谢谢所以我用这个正则表达式来表示LC片段,但我得到了整行。我只想要LCxxxx部分。我错过了什么\w+它必须是记事本++的解决方案吗?似乎很容易通过python脚本或类似脚本运行该文件,将匹配的所有内容复制到另一个文件-o test.txt>output.txt仔细想想,因为Notepad++是一个Windows程序,您可能没有grep…不要进行搜索和替换。而是在文件中查找。这将把所有的匹配放在一个窗口中,你可以复制并粘贴到一个文件中。我还将尝试搜索和替换选项。谢谢所以我用这个正则表达式来表示LC片段,但我得到了整行。我只想要LCxxxx部分。我错过了什么\w+谢谢这太棒了-有助于理解它是如何工作的。如果我愿意,我会投两次票could@bcahill我不知道更换后是否会出现空行。在我的帖子中看到我的更新,第二个正则表达式删除了那些空行。你如何生成这些图?@FranciscoInacio我使用了debuggex。com@FranciscoInácio我使用了debuggex.com谢谢这太棒了-有助于理解
它是如何工作的。如果我愿意,我会投两次票could@bcahill我不知道更换后是否会出现空行。在我的帖子中看到我的更新,第二个正则表达式删除了那些空行。你如何生成这些图?@FranciscoInacio我使用了debuggex。com@FranciscoIn我用了debuggex.com