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正则表达式转义撇号[重复]的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式中无法识别撇号 (')

php正则表达式转义特殊字符[重复]

使用正则表达式转义单引号字符串中的所有双引号 [重复]

Java 正则表达式 转义字符

15.python正则匹配 元字符转义重复或捕获分组断言:零度断言负向零宽断言贪婪非贪婪引擎选项

java转义符和正则表达式转义符