请帮我验证字符串的平衡括号。 我的测试字符串在下面。
The industry [standard] for (transcribing) an audio file takes one hour for every ) 5 minutes of audio.
答案 0 :(得分:3)
以下正则表达式取自 Programming Ruby :
re = /
\A
(?<brace_expression>
{
(
[^{}] # anything other than braces
| # ...or...
\g<brace_expression> # a nested brace expression
)*
}
)
\Z
/x
\g<brace_expression>
这里是递归使用的。
答案 1 :(得分:2)
不幸的是,使用正则表达式无法确定。这是因为正则表达式识别常规语言,而嵌套模式(这里基本上就是你要求的)不是常规语言的一部分。
“Can regular expressions be used to match nested patterns?”详细介绍了这一主题。
编辑:原来Ruby的正则表达式引擎支持这一点。见余浩的回答。