Java正则表达式子字符串后面没有逗号字符

时间:2015-04-23 18:11:25

标签: java regex string split

我有一个字符串,我使用String.split(regex)最终得到一个字符串[]。

字符串格式为

January,WEEKDAY,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,AJanuary,WEEKEND,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,B,B,BJanuary,HOLIDAY,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,C,C,CFebruary,WEEKDAY,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,AFebruary,WEEKEND,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,B,B,BFebruary,HOLIDAY,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,AMarch,WEEKDAY,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,C,C,C

分割后的第一个字符串应为

January,WEEKDAY,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A

所以我认为我需要在A,B或C之间进行拆分,而不是a,

为了测试第一个,我尝试制作我的正则表达式"(?<!,)A,",但这不起作用

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您似乎正在寻找以下内容:

String[] parts = s.split("(?<=,[ABC](?!,))");

或者你也可以在这里使用单词/非单词边界:

String[] parts = s.split("(?<=\\b[ABC]\\B)");

Ideone Demo

答案 1 :(得分:0)

您也可以使用(?<=,[ABC])(?=[^,])进行拆分。