String string = "Tĥïŝ ĩš â fůňķŷ Šťŕĭńġs not cool \"oops" ;
string = string.replaceAll("[^a-zA-Z0-9 ]+", ... );
问题是我想将非字母数字非空格字符附加到转义字符。即。
" -> \"
' -> \'.
那么究竟应该是replaceAll
方法中的第二个参数呢?
或者还有其他很酷的方式(我不想硬编码)
答案 0 :(得分:3)
如果这是Java(我添加了相关标签),那么你可以做
String resultString = subjectString.replaceAll("[\\W\\S]", "\\\\$0");
将替换任何非alnum / non-space字符及其转义对应字符。
请注意,正则表达式不会尝试检测角色是否已被转义。您还应该知道Java中的\W
不能识别区域设置,所以它也会匹配Unicode字母。