У меня есть программа, которая принимает пользовательский ввод в форме логического выражения (например: (p => (r || q))) и разделяет строку на подстроки, которые определены в скобках. Я использую шаблон и совпадение.
Так, например, пользовательский ввод:
((р || д) => г) .
Я хочу получить 2 подстроки:
р || д
а также
(р || д) => г.
Однако я только получаю это:
(p || q
Вот код, который я использую
Scanner scanner = new Scanner(System.in);
System.out.println("Enter formula: ");
String formula = scanner.next();
Pattern pattern = Pattern.compile("\\((.*?)\\)");
Matcher matcher = pattern.matcher(formula);
while(matcher.find())
{
String s = matcher.group(1);
System.out.println(s);
}
Так что мне нужен способ, чтобы программа нашла все подстроки в этой строке.