例如...
String s = "abcxyzabcxyz";
s.replaceAll("xyz", "---");
这通常会给我"abc---abc---"
。我怎么能让它给我"---xyz---xyz"
呢?
String#replaceAll
接受正则表达式,如果我理解正确,你可以使用:
s.replaceAll("[^xyz]", "---")
说明:
[^xyz]
表示任何不是“x”,“y”或“z”之一的字符。
为了否定“xyz”作为一个系列,使用:
^(?!.*xyz).*$
你可以用这个......
s.replaceAll("[^xyz]", "-");
在更正式的Java方法中,我会使用Pattern类,如下所示:
Pattern p = Pattern.compile("[^xyz]");
s.replaceAll(p.pattern(), "-");