Мне нужно получить все выражения между скобками в математической операции с помощью scala.
Я пытался сделать это с помощью регулярного выражения. И это работает с такими выражениями, как:
(2+4)
-> Результат: 2+4
4*(3+1)
-> Результат: 3+1
Но я не могу получить все значения, как в следующем примере:
(2+1)*(4-3)
-> Результат: 2+1)*(4+3
Ожидаемый результат:
`2+1`
`4+3`
Где «формула» - это входное выражение
val regex = Pattern.compile("\\((.*)\\)")
val regexMatcher = regex.matcher(formula)
while (regexMatcher.find()) {
println(regexMatcher.group(1)); //Fetching Group from String
}
РЕДАКТИРОВАТЬ: В случае (1+(2+3))
, хороший результат будет 1+(2+3)