用正则表达式拆分题的选项

如果现在有一道题:

xxxxxxxxxxxxxxxxxxxxxxx
A:xxx,B:xxxx,C:xxxxx,D:xxxxxx

用怎样的正则表达式能拆出
A:xxx,

类似的
B:xxxx,
C:xxxxx,
D:xxxxxx

注:x的内容不确定,什么情况都有可能出现。。。

[code="java"] public static void main(String args[]) throws Exception{
String source = "we23:2t3,we,etwet,wettwt A:XXXX, B:YYY ,C:XXxXX,D:xxxxxx ";

    Pattern pattern = Pattern.compile("([ABCD]\\:.+?[,\\s])");

    Matcher matcher = pattern.matcher(source);

    while(matcher.find()){
        System.out.println(matcher.group(1));
    }

}[/code]

输出:
A:XXXX,
B:YYY
C:XXxXX,
D:xxxxxx

\d{3} A:xxx,
\d{4} B:xxxx,
\d{5} C:xxxxx,
\d{6} D:xxxxxx,

[code="java"]^[ABCD]\:.+[,|\s]$[/code]

([ABCD]\:.+?,)

这样的话, 最后一个D选项后面也得加一个 逗号了

ABCD的选项中 还很有可能还有 ABCD 呵呵。所以不太好做。

必须给定一个唯一的分隔符。