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

问题描述 投票:2回答:2

例如...

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

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

java string str-replace
2个回答
4
投票

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

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

说明:

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

为了否定“xyz”作为一个系列,使用:

^(?!.*xyz).*$

2
投票

你可以用这个......

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

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

Pattern p = Pattern.compile("[^xyz]");
s.replaceAll(p.pattern(), "-");
© www.soinside.com 2019 - 2024. All rights reserved.