This question already has answers here:
How to escape text for regular expression in Java
                                
                                    (8个答案)
                                
                        
                4年前关闭。
            
        

我不确定为什么该正则表达式不能正常工作,我要实现的目标是给定文本“用户的桌面”,我需要将其转换为“用户的桌面”。

这是我的尝试:

String descrip = "user's desktop";
descrip = descrip.replaceAll("'", "\\'");


但是撇号不会被替换。我究竟做错了什么?

最佳答案

您需要两次转义反斜杠:

String descrip = "user's desktop";
descrip = descrip.replaceAll("'", "\\\\'");


或最好不要使用正则表达式:

descrip = descrip.replace("'", "\\'");
//=> user\'s desktop

09-19 19:34