1

我无法弄清楚如何编写正则表达式来编辑我拥有的文件。这是一个包含大约 10,000 个条目的文件,有些行只有一个单词,然后接下来的 1 到 10 行以那个单词开头,所以我试图使用正则表达式来查找后面有一行或更多行的每一行以该初始单词开头,并将它们全部移动到文件的末尾或将它们导出到另一个文件。

因此,一系列条目可能是:

1  
2  
3a  
3a eff  
3a jll  
4  
5  
5 eff  
5 yii 

我试图将“3a-3a jll”移动到文件末尾,然后让正则表达式识别并将“5-5 yii”移动到文件末尾,依此类推。

所以结果将是:

1  
2  
4  
3a  
3a eff  
3a jll  
5  
5 eff  
5 yii 
4

1 回答 1

2

在正则表达式操作中将它们移动到文件末尾可能无法一次性完成,但如果 Notepad++ 可以选择在新文件中收集所有正则表达式匹配项,那么您可以执行以下操作:

搜索

^(\w+)\s*?[\r\n]+(?:\1.*[\r\n]+)+

并将所有匹配项收集到一个新文件中。

然后再次运行相同的搜索,但这次删除所有匹配项(将它们替换为空字符串)。

然后将您编辑的文件与收集到的匹配文件连接起来。

如果您想确保“单词”仅完全匹配(而不是foo<newline>foobar<newline>视为“块”),请添加\bafter \1

于 2013-10-25T05:12:42.110 回答