【发布时间】:2013-09-04 18:01:14
【问题描述】:
我正在尝试使用包含括号 (...) 的表达式来确定,其中 (...) 在方括号内不是。这用于解析和处理一些简单的 lisp 样式表达式。
我已经调整了以下 working 表达式,用于在不在方括号内的空格字符上拆分字符串,但对于上述情况,我似乎无法达到相同的效果.
我正在使用的表达式:
/(\[.*?\]|(\(.*\)+))/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
我可能遗漏了一些明显的东西,但我看不出它是什么。
(如果有区别,表达式将始终保持平衡)
【问题讨论】:
-
尝试提供更多示例,因为您的示例太简单了。
-
要添加到@Juno 的评论中,您能否添加一个您将使用的真实文本的示例,以及结果匹配应该是什么?方括号总是紧挨着括号吗?
-
可能是
^\[\(.+\)^\] -
@konopko 似乎与“(你好)”不匹配。 Juno & Matletics,编辑即将到来。
-
你是对的,那是新的:
\"^\[?\(.+\)^\]?\"
标签: javascript regex