Java奇怪的分裂行为与|字符

时间:2013-08-29 19:03:06

标签: java regex split character

我有一个小文件,其中包含一些我希望用“|”拆分的内容字符。

当我尝试使用任何其他角色(例如“>”)时,它的效果非常好,但使用“|”性格,有一些意想不到的结果。


该行本身(此处带有>字符)
addere>添加>(1)

拆分“>”结果
[addere,添加,(1)]

拆分“|”结果
[,a,d,d,e,r,e,|,t,o,,a,d,d,|,(,1,)]


为什么分裂所有内容甚至忽略“|”字符串本身的字符?
提前谢谢。

2 个答案:

答案 0 :(得分:4)

您必须使用反斜杠转义管道字符,因为它的含义在正则表达式中是特殊的。然后你必须逃避Java本身的反斜杠。尝试:

text.split("\\|")

答案 1 :(得分:1)

由于|是元字符,因此当你逃避它时它会起作用。

String[]  array =youString.split("\\|");

oracle docs on the same