Regex replaceAll如何包含行分隔符

时间:2017-06-29 12:23:36

标签: java regex

我使用正则表达式删除以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;
}

1 个答案:

答案 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)。

您的方法可能会缩短为

"\\."