Tri*_*ity 0 java string asciidoc replaceall
我想在每个管道前面插入一个反斜杠:
// What i want
MyList.replaceAll(item -> item.replaceAll("|" , "\|"));
// what i´ve tried that does not work
MyList.replaceAll(item -> item.replaceAll("\\|" , "\\|"));
Run Code Online (Sandbox Code Playgroud)
执行代码时,我得到“字符串文字中的非法转义字符”。
感谢您的帮助Thx:D
因此,您想在字符串中使用文字反斜杠吗?这是一个很好的难题:
String item = "This | is | a | sample".replaceAll("\\|" , "\\\\|");
System.out.println(item);
Run Code Online (Sandbox Code Playgroud)
印刷品:
This \| is \| a \| sample
Run Code Online (Sandbox Code Playgroud)
为什么是这样?
您必须用Java字符串文字中的另一个反斜杠转义文字反斜杠。特殊的RegEx符号也是如此。因此,在上面的示例中,您想要匹配每个文字|,因此我们在其\之前放置一个(RegEx转义)和另一个\(第一个使用Java字符串转义\)。