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

Java regex substring not followed by comma character

我有一个字符串,我正在使用 String.split(正则表达式) 最终得到一个字符串[]。

字符串格式为

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," 但是没有用

有什么想法吗?

您似乎在寻找类似以下的内容:

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

或者您也可以在此处使用 word/non-word 边界:

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

Ideone Demo

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