Делается рекурсивно:
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