我正在尝试构建一个正则表达式来替换我的转义字符。我的转义字符是反斜杠 (\)。例如:
lastname[ct]sam\\\,ple
应该得到:
lastname[ct]sam\,ple
首先我尝试了这个:
([\\]{1})(.?)
匹配正确的组(“\\”和“\,”)。然后我尝试用正向的前瞻来获取反斜杠,但它并没有真正起作用:
(?=([\\]{1}[^\\]{1}))(.?)
它只匹配逗号之前的反斜杠,而不是反斜杠之前的反斜杠。有人知道我的错误在哪里吗?
最佳答案
匹配反斜杠并捕获后续字符 \\(.)
正则表达式,并仅使用 $1
反向引用替换为捕获的字符。
在Java中,你可以使用
String my_input = "\\\\\\,sample"; // => \\\,sample
String result = my_input.replaceAll("\\\\(.)", "$1");
System.out.println(result); // => \,sample
参见Java demo .
关于正则表达式替换转义字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41016482/