in reply to Re: Re (tilly) 3: parsing question
in thread Re: parsing question
The two experimental features which are needed are (??{}) for delayed evaluation and (?>) for telling the engine not to backtrack. A sample script demonstrating the technique:
Run it and start typing in lines. The ones with balanced parentheses will match.#! /usr/bin/perl my $braces; $braces = qr/(\((?:(?>[^\(\)]+)|(??{$braces}))*\))/; while (<>) { if ($_ =~ $braces) { print "Matched '$1'\n\n"; } else { print "No match\n\n"; } }
|
|---|