我正在尝试取出括号内的内容。例如,如果字符串是“(等等)这是堆栈(过度)流”,我想取出“(等等)”,但单独留下“(over)”。我正在尝试
/\A\(.*\)/
但返回“(等等)这是堆栈(过度)”,我确定为什么它会返回。
答案 0 :(得分:1)
最容易修复:
/\A\(.*?\)/
通常情况下,*
会尝试尽可能多地匹配,因此它会一直匹配到行中的最后一个)
。这称为“贪婪”匹配。在?
/ +
/ *
之后设置?
会使他们非 -greedy,并且他们将匹配最短可能的字符串。
但请注意,这不适用于嵌套括号。那更复杂。举个例子,我假设这是一个非常简单的ad-hoc格式,其中嵌套不是一个问题。