我正在尝试使用包含括号的表达式来确定(...)
,其中括号(...)
不在方括号内。这用于解析和处理一些简单的 lisp 样式表达式。
我已经调整了以下工作表达式,用于在不在方括号内的空格字符上拆分字符串,但对于上述情况,我似乎无法达到相同的效果。
我正在使用的表达式:
/(\[.*?\]|(\(.*\)+))/g
下面是一个示例表达式列表,其中包含来自 hasPair 函数的所需输出。
- (+ 2 2) -> true
- (+ 2 (- 4 2)) -> true
- [(+ 2 2)] -> false
- [(def i (+ 2 2)] -> false
- (defn add [+ 2 2]) -> true
- def add [(+ 2 2)] -> false
- (defn add x y [(+ x y]) -> true
我可能遗漏了一些明显的东西,但我看不出它是什么。
(如果有区别,表达式将始终保持平衡)