正则表达式替换转义字符

时间:2016-12-07 11:38:21

标签: regex regex-lookarounds

我正在尝试构建一个替换我的转义字符的正则表达式。我的转义字符是反斜杠(\)。例如:

lastname[ct]sam\\\,ple

应该得到:

lastname[ct]sam\,ple

首先我尝试了这个:

([\\]{1})(.?)

哪个匹配正确的组(“\\”和“\,”)。然后我试着用正面的前瞻来获得反斜杠,但它并没有真正解决:

(?=([\\]{1}[^\\]{1}))(.?)

它只是匹配逗号之前的反斜杠而不是反斜杠之前的反斜杠。有人知道我的错误在哪里吗?

1 个答案:

答案 0 :(得分:1)

使用\\(.)正则表达式匹配反斜杠和捕获后续字符,并仅使用String my_input = "\\\\\\,sample"; // => \\\,sample String result = my_input.replaceAll("\\\\(.)", "$1"); System.out.println(result); // => \,sample 反向引用替换为捕获的字符。

在Java中,您可以使用

{{1}}

请参阅Java demo