[英]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.