是否可以将对String的replaceAll方法的调用反转?

时间:2014-12-04 13:07:43

标签: java string str-replace

例如......

String s = "abcxyzabcxyz";
s.replaceAll("xyz", "---");

这通常会给我"abc---abc---"。我怎么能让它给我"---xyz---xyz"呢?

2 个答案:

答案 0 :(得分:4)

String#replaceAll接受正则表达式,如果我理解正确,你可以使用:

s.replaceAll("[^xyz]", "---")

说明:

[^xyz]表示任何字符“x”,“y”或“z”之一。

为了将“xyz”否定为系列,请使用:

^(?!.*xyz).*$

答案 1 :(得分:2)

您可以使用此...

s.replaceAll("[^xyz]", "-");

在更正式的Java方法中,我会使用Pattern类,如下所示:

Pattern p = Pattern.compile("[^xyz]");
s.replaceAll(p.pattern(), "-");