我试图像这样替换String表达式中的所有$字符
一个带有s $的字符串和另一个带有$ s的字符串示例,这里是结尾.
这样$字符被空格包围.
我试过 string.replaceAll("$", " $ ");
这会导致非法的Argument Exception.
当我尝试像这样转义$字符时:
string.replaceAll("\$", " $ "); I get an invalid escape sequence error before I even build.
Run Code Online (Sandbox Code Playgroud)
当我尝试以下内容时:
string.replaceAll("\\$", " $ "); I get an illegal argument exception again.
Run Code Online (Sandbox Code Playgroud)
最后,当我尝试这个:
string.replaceAll("\\\\$", " $ ");
Run Code Online (Sandbox Code Playgroud)
它对字符串完全没有影响.我知道这是愚蠢的,我只是没有得到.有人可以帮忙吗?
你需要在两侧都有两个斜线
string.replaceAll("\\$", " \\$ ");
Run Code Online (Sandbox Code Playgroud)
第一个转义将传递给正则表达式的第二个斜杠.然后表达式是"\ $",它与$符号匹配.而你想用相同的替换它.
你必须转义第二个参数,因为虽然它不是正则表达式,但是根据文档,$和$符号是一个特例:
请注意,替换字符串中的反斜杠()和美元符号($)可能会导致结果与将其视为文字替换字符串时的结果不同; 见Matcher.replaceAll.如果需要,使用Matcher.quoteReplacement(java.lang.String)来抑制这些字符的特殊含义.
| 归档时间: |
|
| 查看次数: |
1178 次 |
| 最近记录: |