2015-04-23 83 views
2

我有一個字符串,我正在使用String.split(regex)最終得到一個字符串[]。Java正則表達式子字符串後面跟着逗號字符

字符串格式

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,",但那不起作用

有什麼想法?

回答

1

看來你正在尋找的東西像下面這樣:

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

或者你也可以在這裏用一個字/非單詞邊界,以及:

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

Ideone Demo

+1

像魅力一樣工作。 – ComlyW

0

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

相關問題