我想将字符串“S /”更改为“S /”。只有整个单词,我尝试了Pattern.compile和Matcher.quoteReplacement。我没有找到解决方案。
public static void main(String[] args) {
String cadena = "Moneda Actual : S/";
cadena = cadena.replaceAll("\\bS/\\b", "S/.");
System.out.println(cadena);
}
此代码打印:
Moneda实际:S /
我要打印:
Moneda实际:S /。
因此,如果原始文本为
"Moneda Actual : S/."
,则算法不能替换为"S/.."
最佳答案
负面评价:
cadena = cadena.replaceAll("\\bS/(?!\\.)", "S/.");
否定的前瞻断言(不消耗)下一个字符不是点。
这也将起作用,然后
"S/"
出现在字符串的末尾。-
在斜线之后和点之前没有单词边界。单词边界介于“单词”字符(字母,数字和下划线)和非“单词”字符之间。不在空白和非空白之间。