Скажем, выражение имеет следующий вид:
((a ~eq~ 'Value A' ~and~ b ~eq~ 'Value (b)') ~or~ (c ~eq~ 'Value C')) ~and~ d ~eq~ 123
Каков наилучший способ получить здесь группы выражений, например:
1-ые внутренние группы:
A = (a ~eq~ 'Value A' ~and~ b ~eq~ 'Value (b)')
B = (c ~eq~ 'Value C')
2-я внутренняя группа:
Внешняя группа:
ПокаЯ попробовал следующее регулярное выражение:
- Для скобок с одним заключением:
\([^()]*\)
- Для скобок с двойным заключением:
\(([^()]*|\([^()]*\))*\)
Чтобы получитьвыражения внутри скобок и обрабатывают его, но регулярное выражение не выполняется, когда у операнда есть внутренняя скобка (b ~eq~ 'Value (b)')
.