正则表达式拆分(|)

时间:2019-08-05 10:29:12

标签: java regex split

我用这个表达式"hello,145451,new,5565"用逗号发送一个字符串",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)",并且运行正确,结果如下:

你好 145451 新 5565

它返回四个元素。

但是现在我需要将"hello|145451|new|5565"|分开

我使用以下表达式:"\\|(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)",结果是:

hello | 145451 | new | 5565

它仅返回一个元素

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

管道|是正则表达式中的元字符,请添加双反斜杠以根据管道拆分字符串。

String str = "hello|145451|new|5565";
String arr[] = str.split("\\|(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)");

for(String myStr: arr) {
    System.out.println(myStr);
}