Friday, March 19, 2010

Поиск вложенных скобок на перле

Делается рекурсивно:

my $reg;
$reg = qr/
\(
  (?:
    (?>[^()]+)
    |
    (??{$reg})
   )*
\)
/x;

Используется так:
Есть выражение ( проверим на парные скобки ):
my $string = "foo( 3 * ( 5 + 2 * ( 2 / ( 2 + 5 ) + 5 )))";

if ( $string =~ /\w+$reg/ ) {
  print "okay\n";
}

No comments:

Post a Comment