删除行而不是用日食中的空行替换

时间:2018-08-20 11:28:30

标签: regex eclipse

我想在代码中搜索特定行并将其删除。我正在使用正则表达式并找到我要查找的行。通过在eclipse中使用“搜索/替换”功能,我想完全删除这些行(它们总是多行。)我的问题是,eclipse用一个空行替换了多行,而不是完全删除。 正如许多其他主题中所建议的那样,我在“搜索”字段中使用我的搜索词,并将“替换”字段保留为空。但是,除了删除这些行以外,eclipse只是将它们替换为一个空行。 我可以分两步来做,首先用空行替换行,然后使用regex删除该空行,但是我有很多文件,其中也包含空行以提高结构/可读性。

提前感谢您的帮助!

示例:

代码:

Information
rubbish
rubbish
rubbish
Information

我想要什么:

Information
Information

我得到的是:

Information

Information

2 个答案:

答案 0 :(得分:0)

假设您要删除显示rubbish的行,则只需在末尾添加\n?(或操作系统的新行字符加上?)即可。

rubbish\n?

这将匹配rubbish之后的任何新行字符,并将替换新行。您可以将rubbish替换为所需的任何模式。

Demo

但是,如果最后一行是rubbish,则会在末尾留下一个空行,因为最后一个rubbish后没有新行。除非您要删除包含}的行(通常是Java源文件中的最后一行),否则这应该不是问题。

要解决此问题,可以使用以下正则表达式:

rubbish\n|\nrubbish

有点慢,但是这不是问题,因为您没有使用此正则表达式编写生产代码。您只是在尝试重构您的源代码,对吧?

使用rubbish\n然后使用\nrubbish可以更快。

答案 1 :(得分:0)

诀窍是,我的表达式找不到换行符,因此没有替换它。我在表达之后刚刚添加了\R,解决了我所有的问题。 非常感谢howlger的提示,也感谢Sweeper寻求换行符的想法。