[英]most elegant way of escaping $ in java
我有一个基本字符串"abc def"
,我正在尝试使用replaceFirst()
将我的基本字符串替换为"abc$ def$"
,因为$
不能转义,这会replaceFirst()
错误。
我尝试使用Pattern和Matcher API做到这一点,如下所示,
newValue = "abc$ def$";
if(newValue.contains("$")){
Pattern specialCharacters = Pattern.compile("$");
Matcher newMatcherValue = specialCharacters.matcher(newValue) ;
newValue = newMatcherValue.replaceAll("\\\\$") ;
}
这会出错。 有什么优雅的方法可以将我的第二个字符串"abc$ def$"
替换为"abc\\\\\\\\$ def\\\\\\\\$"
以便成功使用replacefirst()
API?
查看Pattern.quote()
引用正则表达式, Matcher.quoteReplacement()
引用替换字符串。
就是说,这是您想要的吗?
System.out.println("abc def".replaceAll("([\\w]+)\\b", "$1\\$"));
打印出abc$ def$
您只需一步即可使用replaceAll:
String newValueScaped = newValue.replaceAll("\\$", "\\\\$")
$在正则表达式中有一个特殊的挖掘,因此您需要对其进行处理。 它用于匹配数据的结尾。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.