Необязательное использование String.split(), разделить строку по последнему вхождению разделителя

У меня есть строка, соответствующая этому регулярному выражению: ^.+:[0-9]+(\.[0-9]+)*/[0-9]+$, который можно легко визуализировать как (Text):(Double)/(Int). Мне нужно разбить эту строку на три части. Обычно это было бы легко, за исключением того, что (Текст)может содержать двоеточия, поэтому я не могу разбить ни одно двоеточие, а скорее последнеедвоеточие.

.*является жадным, поэтому он уже делает довольно аккуратную работу, но это не будет работать как регулярное выражение в String.split(), потому что оно съест мой (Text )как часть разделителя. В идеале я хотел бы иметь что-то, что вернуло бы String[] с тремя строками. Я на 100% согласен с тем, что не использую для этого String.split().

5
задан Huckle 7 June 2012 в 21:49
поделиться