如何删除单个反斜杠,并用单个反斜杠替换

时间:2019-03-29 09:44:31

标签: java regex

使用什么正则表达式删除接收到的数据中的转义字符。

示例:

dd\.mm\.yyyy -> dd.mm.yyyy
d\-mm\-yy -> d-mm-yyyy
m\\d\\yyyy -> m\d\yyyy

测试:

assertEquals("m\\d\\yyyy", removeEscapeChars("m\\\\d\\\\yyyy"));
assertEquals("dd-mm-yyyy", removeEscapeChars("dd\\-mm\\-yyyy"));
assertEquals("dd.mm.yyyy", removeEscapeChars("dd\\.mm\\.yyyy"));

1 个答案:

答案 0 :(得分:3)

您似乎想将\x替换为x。为此,您可以使用

str = str.replaceAll("\\\\(.)", "$1");
  • "\\\\"作为正则表达式代表\在字符串文字中创建的单个"\\"
  • .可以代表任何字符(行分隔符除外,但是根据您的示例,这应该不成问题)
  • (.)将其放置在“捕获组”中,该组将被索引为1
  • 替换公式中的
  • $1使我们能够使用组1的当前匹配项(字符由.匹配,因此该字符将被\所转义)。