例如...是否可以将对String的replaceAll方法的调用反转?
String s = "abcxyzabcxyz";
s.replaceAll("xyz", "---");
这通常给我"abc---abc---"
。我怎么会得到它给我"---xyz---xyz"
而不是?
例如...是否可以将对String的replaceAll方法的调用反转?
String s = "abcxyzabcxyz";
s.replaceAll("xyz", "---");
这通常给我"abc---abc---"
。我怎么会得到它给我"---xyz---xyz"
而不是?
String#replaceAll
接受一个正则表达式,如果我理解正确的话,你可以使用:
s.replaceAll("[^xyz]", "---")
说明:
[^xyz]
手段任何字符的 “X” 的不之一,“Y “或”z“。
为了否定 “XYZ” 作为一个系列,使用:
^(?!.*xyz).*$
如果你有“xabcxyzaxbcxyz”它返回x --- xyz-x - xyz。正则表达式应该包括三个字母的顺序相同,而不是任何单一的外观。我认为[this](http://stackoverflow.com/a/1240293/1656663)应该用来构建正则表达式 – jesantana 2014-12-04 13:32:04
第二个正则表达式^ ^(!!。* xyz)。* $'替换整个字符串或没有。我想你想使用@ jesantana的接受的答案:http://stackoverflow.com/a/1240337/1969638 – Zantier 2014-12-04 13:52:41
您可以使用此...
s.replaceAll("[^xyz]", "-");
在一个更正式的Java方法,我将使用模式类,像这样:
Pattern p = Pattern.compile("[^xyz]");
s.replaceAll(p.pattern(), "-");
那么,我的第一枪会是's.replaceAll(“abc”,“---”)',但我想这不是你想要的,对吧? – 2014-12-04 13:10:11
它应该如何处理:'String s =“abcwxyzabctuvwxyz”;','s.replaceAll(“xyz”,“123”);' – Eypros 2014-12-04 13:10:14
它不应该太难...... [replaceAll](http ://docs.oracle.com/javase/6/docs/api/java/lang/String.html#replaceAll)需要一个正则表达式作为第一个参数 – AJPerez 2014-12-04 13:12:13