Java正则表达式转义撇号[重复]
Posted
技术标签:
【中文标题】Java正则表达式转义撇号[重复]【英文标题】:Java regex to escape apostrophe [duplicate] 【发布时间】:2015-07-26 10:13:00 【问题描述】:我不确定为什么这个正则表达式不起作用,我想要实现的是给定文本“用户的桌面”,我需要将其转换为“用户的桌面”。
这是我的尝试:
String descrip = "user's desktop";
descrip = descrip.replaceAll("'", "\\'");
但是撇号没有被替换。我做错了什么?
【问题讨论】:
【参考方案1】:您需要两次转义反斜杠:
String descrip = "user's desktop";
descrip = descrip.replaceAll("'", "\\\\'");
或者最好不要使用正则表达式:
descrip = descrip.replace("'", "\\'");
//=> user\'s desktop
【讨论】:
【参考方案2】:如果您想避免所有正则表达式开销,可以使用一些内置方法。比试图弄清楚要逃避什么要容易得多:
descrip.replaceAll(Pattern.quote("'"), Matcher.quoteReplacement("\\'")
【讨论】:
以上是关于Java正则表达式转义撇号[重复]的主要内容,如果未能解决你的问题,请参考以下文章