2016-12-07 147 views
2

我試圖建立一個正則表達式它取代我的轉義字符。我的轉義字符是反斜線(\)。例如:正則表達式替換轉義字符

lastname[ct]sam\\\,ple 

應該得到:

lastname[ct]sam\,ple 

首先,我這個試了一下:

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

哪些匹配正確的組( 「\\」 和 「\」) 。然後我試圖剛剛獲得正前瞻反斜槓,但它真的didn't摸出:

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

它只是反斜槓之前逗號而不是之前匹配反斜槓反斜槓。任何人有一個想法,我的錯誤是什麼?

+0

你嘗試[''\\(。)''和'$ 1'更換(https://regex101.com/r/7ho3ll/1)?匹配反斜槓並捕獲後續字符,並僅替換捕獲的字符。 –

+0

@WiktorStribiżew我不知道該怎麼辦替代了Java。我嘗試它! – perotom

+0

在Java:'s.replaceAll( 「\\\\()」, 「$ 1」)' –

回答

1

匹配一個反斜槓和捕獲後的字符與\\(.)正則表達式,並與被捕獲的唯一使用$1反向引用替換。

在Java中,你可以使用

String my_input = "\\\\\\,sample"; // => \\\,sample 
String result = my_input.replaceAll("\\\\(.)", "$1"); 
System.out.println(result); // => \,sample 

Java demo