[英]Replace a String containing “$” with “\$” in Java
我该怎么做? 我做了一个研究,但我找不到一个明确的答案。我试着用
pass = pass.replaceAll("$", "\\$");
但它不起作用。
采用
pass = pass.replace("$", "\\$");
它也将取代所有事件。 请参阅JavaDoc 。
如果你喜欢艰难的方式并想使用正则表达式,你需要:
pass = pass.replaceAll("\\$", "\\\\\\$");
这可以通过Matcher.quoteReplacement()
简化,但仍然只需要替换匹配正则表达式的东西时使用replaceAll()
,并在必须替换文字序列时使用replace()
。
问题是String.replaceAll
使用正则表达式,其中\\
和$
都有特殊含义。 据我所知,你不想要它 - 你只想逐字替换字符串。 因此,您应该使用String.replace
:
pass = pass.replace("$", "\\$");
(我个人认为replaceAll
使用正则表达式这一事实是一个设计错误,但这是另一回事。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.