Я пытаюсь использовать Regex для извлечения значений из строки и использования их для дальнейшей обработки. Строка у меня есть:Регулятор регулярного выражения - совпадение не найдено
String tring =Format_FRMT: <<<$gen>>>(((valu e))) <<<$gen>>>(((value 13231)))
<<<$gen>>>(((value 13231)))
Regex модель я сделал это:
Pattern p = Pattern.compile("\\<{3}\\$([\\w ]+)\\>{3}\\s?\\({3}([\\w ]+)\\){3}");
Когда я бегу всю программу
Matcher m = p.matcher(tring);
String[] try1 = new String[m.groupCount()];
for(int i = 1 ; i<= m.groupCount();i++)
{
try1[i] = m.group(i);
//System.out.println("group - i" +try1[i]+"\n");
}
я получаю
Соответствие не найдено
Может ли кто-нибудь помочь мне в этом? где именно это происходит не так? Моя первая цель - просто посмотреть, могу ли я получить значения в соответствующих группах или нет. и если это работает нормально, я бы хотел использовать их для дальнейшей обработки.
Благодаря
'Pattern p = Pattern.compile \\ <{3} \\ $ ([\\ w] +) \\> {3} \\ s? \\ ({3} ([\\ w] +) \\) {3}); '??? Как?? –
Как указывает Авинаш, ваш код не является синтаксически действительным и не может быть скомпилирован. Начните с удаления большей части вашего шаблона и просто начните просто: например, просто сравните три меньше. Это работает? Затем добавьте знак доллара и т. Д. – dsh
Я пропустил скобок, я отредактировал вопрос! –