我需要解析以下形式的表达式:
(S (A (B (D xyz)) (C m)))
( 的数量总是等于 ) 的数量,但是 (S ) 之间可以有任意数量的左括号和右括号对。在这种情况下,我想提取 (A (B (D xyz)) (C m))。文件中可能有任意数量的 (S ) 子句,所以我不能简单地进行 ^(S .* )$ 类型的模式匹配。
如果我知道 (S) 之间潜在的左括号和右括号对的数量,这不会那么困难,但我不确定如何编写一个知道匹配任意数量的 () 的正则表达式。
获得正则表达式模式的任何帮助将不胜感激。提前致谢。