我想在代码中搜索特定行并将其删除。我正在使用正则表达式并找到我要查找的行。通过在eclipse中使用“搜索/替换”功能,我想完全删除这些行(它们总是多行。)我的问题是,eclipse用一个空行替换了多行,而不是完全删除。 正如许多其他主题中所建议的那样,我在“搜索”字段中使用我的搜索词,并将“替换”字段保留为空。但是,除了删除这些行以外,eclipse只是将它们替换为一个空行。 我可以分两步来做,首先用空行替换行,然后使用regex删除该空行,但是我有很多文件,其中也包含空行以提高结构/可读性。
提前感谢您的帮助!
示例:
代码:
Information
rubbish
rubbish
rubbish
Information
我想要什么:
Information
Information
我得到的是:
Information
Information
答案 0 :(得分:0)
假设您要删除显示rubbish
的行,则只需在末尾添加\n?
(或操作系统的新行字符加上?
)即可。
rubbish\n?
这将匹配rubbish
之后的任何新行字符,并将替换新行。您可以将rubbish
替换为所需的任何模式。
但是,如果最后一行是rubbish
,则会在末尾留下一个空行,因为最后一个rubbish
后没有新行。除非您要删除包含}
的行(通常是Java源文件中的最后一行),否则这应该不是问题。
要解决此问题,可以使用以下正则表达式:
rubbish\n|\nrubbish
有点慢,但是这不是问题,因为您没有使用此正则表达式编写生产代码。您只是在尝试重构您的源代码,对吧?
使用rubbish\n
然后使用\nrubbish
可以更快。
答案 1 :(得分:0)
诀窍是,我的表达式找不到换行符,因此没有替换它。我在表达之后刚刚添加了\R
,解决了我所有的问题。
非常感谢howlger的提示,也感谢Sweeper寻求换行符的想法。