【发布时间】:2011-09-13 22:27:19
【问题描述】:
我一直在寻找一种在正则表达式中匹配平衡括号的方法,并在 Perl 中找到了一种使用递归正则表达式的方法:
my $re;
$re = qr{
\(
(?:
(?> [^()]+ ) # Non-parens without backtracking
|
(??{ $re }) # Group with matching parens
)*
\)
}x;
来自perl regular expression site .
有没有办法在 Ruby 或类似的语言中做到这一点?
更新:
对于那些感兴趣的人,这里有一些有趣的链接:
Oniguruma manual - 来自 Sawa 的回答。
Pragmatic Programmers' Ruby 1.9 Regular Expressions Sample Chapter
【问题讨论】:
-
Oniguruma 文档链接不再可用。更好的来源可能是:github.com/kkos/oniguruma/blob/master/doc/RE