如何替换字符串中所有的“ $$$”?
我尝试过
story.replaceAll("$$$","\n")
这将显示警告:将$锚定在意外位置,并且代码无法正常工作。该代码将“ $”符号用作正则表达式的锚点。我只需要替换该符号即可。
有什么办法吗?
答案 0 :(得分:2)
“ $”是正则表达式的特殊字符。
尝试以下操作:
System.out.println(story.replaceAll("\\$\\$\\$", "\n"));
在上面的代码中,我们用“ \”转义了“ $”字符。
答案 1 :(得分:2)
有几种方法可以执行此操作。这取决于您要做什么以及您的解决方案有多优雅:
String replacement = "\n"; // The replacement string
// The first way:
story.replaceAll("[$]{3}", replacement);
// Second way:
story.replaceAll("\\${3}", replacement);
// Third way:
story.replaceAll("\\$\\$\\$", replacement);
答案 2 :(得分:1)
您可以使用反斜杠转义任何特殊字符(正则表达式)。由于Java文字也将反斜杠用作转义字符,因此您需要对反斜杠本身进行转义。
story.replaceAll("\\${3}", something);
您说,通过使用{3}
后面的$
,它应该被精确地发现3次。看起来比"\\$\\$\\$"
更优雅。
因此,something
是您的替代者,例如""
或\n
,具体取决于您想要的内容。
答案 3 :(得分:0)
这肯定可以。.
story.replaceAll("\\$\\$\\$","\n")
您可以对任何特殊字符执行此操作。