我有下一段文字

 aaa|bbbb|cccc|dddd\|eeee|ffff

我想按|并排除|以\开头并获得

aa

bbbb

cccc

dddd \ | eeee

ffff

谢谢。

ps:我尝试使用一些regexp生成器(例如http://txt2re.com/),但坦率地说regexp并不友好。

更新:最后我放弃了。正则表达式不是很快(我做了一个基准测试),也不是很清楚(与每个人都可以遵循的功能相比),然后我跳过了它,现在我正在使用真实代码。

最佳答案

试图将其添加为对失明眼症的回答的注释,但不知道该如何格式化...

无论如何,失明的答案对我来说是正确的:

    String str = "aaa|bbbb|cccc|dddd\\|eeee|ffff";
    String[] tokens = str.split("(?<!\\\\)\\|");
    System.out.println(Arrays.toString(tokens));

打印:
[aaa, bbbb, cccc, dddd\|eeee, ffff]

10-04 11:44