【问题标题】:Replace Strings in java having metacharacters替换具有元字符的java中的字符串
【发布时间】:2014-08-18 18:54:03
【问题描述】:

我有两个字符串,想用一个字符串替换另一个字符串。问题是字符串有元字符。

例如

String string1 = "I am foo";
String string2 = "I am bar and I am foo. I am both.";
string2 = string2.replaceAll(string1, ""); does the replacement.

假设我有以下字符串。

String string1 = "I + am - foo [].";
String string2 = "I + am bar and I + am - foo []. I am both.";

Then the answer should be : "I + am bar and I am both."

我们如何执行替换? 我知道 java.util.regex.Pattern.quote("xyz") 转义字符,但在这种情况下,有很多元字符。

谢谢。

【问题讨论】:

  • 我不明白为什么Pattern#quote() 在这里不起作用。你能详细说明一下吗?

标签: regex string replace metacharacters


【解决方案1】:

看来你已经有了答案:

String string1 = "I + am - foo [].";
String string2 = "I + am bar and I + am - foo []. I am both.";
System.out.println(string2.replaceAll(Pattern.quote(string1), ""));

输出:

I + am bar and  I am both.

【讨论】:

    猜你喜欢
    • 2015-12-23
    • 1970-01-01
    • 2013-07-09
    • 2012-06-27
    • 2015-05-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-27
    • 1970-01-01
    相关资源
    最近更新 更多