我正在尝试转义 Java 中的 RegExp 元字符。以下是我想要的:
INPUT STRING: "This is $ test"
OUTPUT STRING: "This is \$ test"
这就是我目前正在做的事情,但它不起作用:
String inputStr= "This is $ test";
inputStr = inputStr.replaceAll("$","\\$");
但我得到了错误的输出:
"This is $ test$"
你需要:
inputStr.replaceAll("\\$", "\\\\\\$");
要替换的字符串需要 2 个反斜杠,因为$在正则表达式中具有特殊含义。所以 $ 必须转义,才能得到:\$
,并且该反斜杠必须itself在java字符串中转义:"\\$"
.
替换字符串需要 6 个反斜杠,因为\ and $替换字符串有特殊含义:
- \ 可用于转义替换字符串中的字符。
- $ 可用于在替换字符串中进行反向引用。
因此,如果您想要的替换字符串是“\$”,则需要对这两个字符进行转义以获得:\\\$
,然后您需要使用的每个反斜杠 - 其中 3 个,1 个文字,2 个用于转义 - 必须also在java字符串中转义:"\\\\\\$"
.
See: 匹配器.replaceAll
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)