java - 如何在每个管道前面插入反斜杠

标签 java string replaceall asciidoc

我想在每个管道前面插入一个反斜杠:

// What i want
MyList.replaceAll(item -> item.replaceAll("|" , "\|")); 
// what i´ve tried that does not work
MyList.replaceAll(item -> item.replaceAll("\\|" , "\\|"));

执行代码时,我得到“字符串文字中的非法转义字符”。

感谢您的帮助 谢谢:D

最佳答案

那么你想在字符串中使用反斜杠吗?这是一个不错的益智游戏:

String item = "This | is | a | sample".replaceAll("\\|" , "\\\\|");
System.out.println(item);

打印:

This \| is \| a \| sample

这是为什么?
在 Java 字符串文字中,您必须使用另一个反斜杠来转义文字反斜杠。这同样适用于特殊的正则表达式符号。因此,在上面的示例中,您想要匹配每个文字 |,因此我们在其前面放置一个 \ (正则表达式转义)和另一个 \ (第一个 \ 的 Java 字符串转义)。

关于java - 如何在每个管道前面插入反斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58484158/

相关文章:

java - Singleton 在 Spring 中是如何工作的?

c# - 如果一组符号仅重复,如何使正则表达式匹配?

java - 有用的速度小工具

string - 通过替换获取字符串的回文

arrays - 如何从带有链接的数组中获取值?

java - 如何只替换数字后面的双引号?

java - 正则表达式 "\\p{Z}"是什么意思?

java - BIRT 中的联合数据集仅限于两个表

java - java子串方法中的OR条件

Java:replaceAll 没有像我想象的那样工作