У меня есть файл журнала, который я хочу проанализировать.Речь идет о получении значений в квадратных скобках и после «OK:» с помощью регулярных выражений.Проблема в том, что я не знаю, сколько раз встречается шаблон, и я не могу сказать, насколько длинен каждый код.Так что я могу передать только тот факт, что он окружен "[OK:" и "]".
До сих пор я пытался использовать этот шаблон здесь как регулярное выражение:
String ok_pattern = "(.*itId=<)(.{1,10})(>.*)(\\[OK:)(.{4,27})(].*)";
Pattern p_ok = Pattern.compile(ok_pattern);
String testString = "RANDOMTEXT itId=<1232> Code < [OK:AZ1000105] [OK:10000006] [OK:F1000000007] > RANDOMTEXT";
Matcher m = p_ok.matcher(testString);
if(m.find()) {
System.out.println(m.group(5));
}
Но это работает только в случае, когда есть только один "[OK: ...]".Я играл с использованием «*» и «+» после 5-й группы, но не смог добиться успеха.Как мне сделать это повторяющееся и при этом захватить все результаты?
Моя цель - извлечь комбинацию itemId и (char-) числа после «OK:» с помощью регулярных выражений.Поэтому в этом примере я хочу получить «1232» (ItemID) и «AZ1000105», «10000006», «F1000000007».
Я благодарен за любую помощь!