Могу ли я использовать регулярное выражение для соответствия каждому третьему вхождению определенного символа?

У меня есть строка, содержащая несколько значений с разделителями:

1.95;1.99;1.78;10.9;11.45;10.5;25.95;26;45;21.2

Чего я хотел бы добиться, так это разбиения на каждое третье появление точки с запятой, поэтому моя результирующая String[] должно содержать следующее:

result[0] = "1.95;1.99;1.78";
result[1] = "10.9;11.45;10.5";
result[2] = "25.95;26;45";
result[3] = "21.2";

До сих пор я пробовал несколько решений регулярных выражений, но все, что я мог сделать, это найти любые шаблоны, которые находятся между точкой с запятой. Например:

(?<=^|;)[^;]*;?[^;]*;?[^;]*

Что соответствует нужным мне значениям, что делает невозможным использование split()или я что-то упустил?

К сожалению, я могу предоставить только используемый шаблон и не имею возможности добавить какой-либо цикл по результатам приведенного выше шаблона.

5
задан Tim Pietzcker 9 May 2012 в 13:04
поделиться