【问题标题】:Java String.replaceAll() replace across newlines [duplicate]Java String.replaceAll() 跨换行符替换[重复]
【发布时间】:2017-02-28 08:28:51
【问题描述】:

考虑以下代码。

String s = "000000Xabcdefgh\nijkX00000000";
s = s.replaceAll("X.*X", "");
System.out.println(s);

我希望Xabcdefgh\nijkX 被替换为空字符串,但由于中间有一个换行符,因此没有任何内容被替换。为什么正则表达式匹配在换行处终止?匹配正则表达式时如何忽略换行符?

【问题讨论】:

  • s= s.replaceAll("X([^X]*)X", "");它替换了两个 X 之间的所有内容。

标签: java regex


【解决方案1】:

试试这个:

String s = "000000Xabcdefgh\nijkX00000000";
s = s.replaceAll("X.*( |\t|\r\n|\r|\n).*X", "");
System.out.println(s);

这将处理所有其他空白/换行符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-25
    • 2010-11-29
    • 2016-02-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多