如何使用perl获取嵌套大括号内的值

时间:2013-07-20 05:01:42

标签: regex perl

我有一个字符串,其中包含大括号内的表达式列表。我希望通过将其拆分为数组来获取详细信息。 我试过这样的。

#!/usr/bin/perl 
sub main() {
my $string = <STDIN>; 
while ($string =~ /(\((?:(?1)|[^()]*+)++\))|[^()\s]++/g) 
{
print "$&\n" 
}
main();

InPut : (+ (+ 4 3) ( - 3 2) 5)
Output should be : (+ (+ 3 4) ( - 2 3) 5)
(+ 3 4)
( - 2 3) 

我试图将它存储在一个数组中,然后分别进行评估..但不确定这是正确的方法。

基本上我正在尝试评估表达式如下。

4+3 =7 , 3-2 =1 , and then 7+1+5 = 13
Final output should be 13

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

使用以下表达式/(?=(\((?>[^()]+|(?1))*\)))/g

在此处查看此行动:http://regex101.com/r/eI7iP5