我使用正则表达式删除以certian字符串开头的所有行,但是它可以删除所有行,但仍然存在行分隔符,这留下了很多空行。如何修改正则表达式?
public class Manipulator {
private static final String RECOVERY_1 = "RecoveryRate.1.*";
public static String remove(String input) {
String remove = input;
remove = remove.replaceAll(RECOVERY_1, "");
return remove;
}
答案 0 :(得分:2)
在最后添加\R*
换行符:
private static final String RECOVERY_1 = "RecoveryRate.1.*\\R*";
或者
private static final String RECOVERY_1 = "RecoveryRate.1.*[\r\n]*";
匹配可选的0+换行符。
请注意,您可以告诉正则表达式引擎仅在模式开头的Pattern.MULTILINE
标志(或其内联版本(?i)
)的行开头处匹配这些模式,即{ {1}}会在行的开头匹配"(?m)^RecoveryRate...."
。
如果RecoveryRate
之前的.
是一个文字点,则需要将其转义(1
)。
您的方法可能会缩短为
"\\."