Mr. Shawn H. Corey wrote: > On Fri, 2008-10-03 at 11:52 +0300, Vyacheslav Karamov wrote: >> Hi All! >> >> I need to capture something in braces using regular expressions. >> But I don't need to capture wrong data: >> >> [Some text] - correct >> (Some text) - also correct >> [Some text) - wrong >> (Some text] - also wrong >> > > #!/usr/bin/perl > > use strict; > use warnings; > > while( <> ){ > chomp; > while( /\((.*?)\)|\[(.*?)\]/g ){ > my $result = $1; > $result = $2 unless defined $result; > print "$result\n"; > } > } > > __END__ > > Note that if these structures can be nested, you will have to use a FSA > with a push-down stack.
That will match a line like [wrong) and (wrong] Rob -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/