如何转义java正则表达式|运算符

如何转义java正则表达式|运算符,java,regex,escaping,Java,Regex,Escaping,我想问一些关于java正则表达式的问题,希望能在这里找到一些帮助 我有一个字符串,看起来像“textX | textY | textZ”。 现在,我想在java中的每个|字符上拆分这个 我试过了 string.split("\|"); 但是我刚刚得到了一个“无效转义序列”错误 当我使用|作为分隔符时,如何拆分上述字符串?在Java中需要双重转义,因此请使用: String[] tokens = string.split("\\|") 或者使用字符类: String[] tokens = st

我想问一些关于java正则表达式的问题,希望能在这里找到一些帮助

我有一个字符串,看起来像
“textX | textY | textZ”
。 现在,我想在java中的每个
|
字符上拆分这个

我试过了

string.split("\|");
但是我刚刚得到了一个
“无效转义序列”
错误


当我使用
|
作为分隔符时,如何拆分上述字符串?

在Java中需要双重转义,因此请使用:

String[] tokens = string.split("\\|")
或者使用字符类:

String[] tokens = string.split("[|]");
简单地做

string.split("\\|");

在java中,当我们转义时,我们通过两个反斜杠来转义元字符。

您应该使用
\\\\\124;
来转义元字符。

在java中,您需要为正则表达式转义两次字符:一次用于字符串,一次用于正则表达式

试一试


您必须使用双反斜杠
\\
string.split(“\\\\\”)


这是因为反斜杠是java和regex的转义字符。对于java,第一个转义第二个,以便将“实”反斜杠传递给正则表达式

反斜杠是用来逃避元角色的,多亏了这一点。但现在我有另一个问题。即使|分隔符之间没有文本,结果数组的长度也应该相同。我该怎么做?你能告诉我你的输入数据是什么,你希望得到什么样的输出吗?
string.split("\\|")