У меня есть строка, которую я хочу проанализировать.
Строка выглядит так: -
00:0qwe8.0 donald controller duck [02009&123@##]: Some more sring here Model number 420 Family [Super-cool] [15b31013^^@#][15b:31013]
Обратите внимание, что в последней квадратной скобке есть: двоеточие. и символ перед Some More также является двоеточием. Я хочу захватить все символы между ними.
В настоящее время я анализирую его с помощью следующего регулярного выражения в два этапа. Вот код Java.
class JavaReg{
public static void main(String[] args){
String str = "00:0qwe8.0 donald controller duck [02009&123@##]: Some more sring here Model number 420 Family [Super-cool] [15b31013^^@#][15b:31013]";
String[] strArr = str.split("\\[.*?\\]\\:\\s");
String[] str12 = strArr[1].split("\\[\\w*?\\:.*");
for(String strinj : strArr)
System.out.println(strinj);
System.out.println(str12[0]);
}
}
Ниже приведен результат вышеописанного упражнения.
00:0qwe8.0 donald controller duck
Some more sring here Model number 420 Family [Super-cool] [15b31013^^@#][15b:31013]
Some more sring here Model number 420 Family [Super-cool] [15b31013^^@#]
Последняя строка - это то, что я хочу. Он начинает захватывать с двоеточия: и продолжает захватывать до квадратной скобки с двоеточием.
Вопрос в том, могу ли я использовать захват групп в регулярных выражениях, чтобы захватить их за один выстрел.
Как это сделать на Java?