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.


-- 
Just my 0.00000002 million dollars worth,
  Shawn

Linux is obsolete.
-- Andrew Tanenbaum


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to