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


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


Reply via email to