On Mon, Sep 22, 2008 at 9:02 PM, Thomas Bätzler <[EMAIL PROTECTED]> wrote: > Hi, > > Sharan Basappa <[EMAIL PROTECTED]> asked: >> I have a code snippet as follows: >> >> keyword id1 = a x b x c; >> keyword id2 = c x d x e; >> >> I would like to extract strings "a x b x c" and "c x d x e". >> I know I can loop through the code and extract the strings, >> but is there a RE that can do this with a single statement. > > You could do something like > > #!/usr/bin/perl -w > > use strict; > > my $code; > { > local $/ = undef; > > $code = <DATA>; > } > > my( @matches ) = ( $code =~ m/^\s*keyword\s+id\d+\s*=\s*(.*?)\s*;\s*$/gm ); > > foreach my $match (@matches ){ > print "$match\n"; > } > > __DATA__ > blah > blah > keyword id1 = a x b x c; > blah > keyword id2 = c x d x e; > blah > >> As a side point - is there way to debug RE. Example, many a >> times when we write an RE, it fails and requires fine tuning. >> But it would be good to see how far was the RE was able to go >> and at what point it bailed out. > > See http://www.weitz.de/regex-coach/ > > HTH, > Thomas > > Thanks Tom and Shawn. The method given by Shawn works (with minor changes).
-- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/