in reply to Regular Expressions Challenge
In the absence of being able to come up with a single line of code for regular expressions I've combined the split suggestions with a regular expression to achieve the desired result. Here is the working code:
my @section; my $i = -1; foreach (split /\n/, $str) { if (/^===Comments===$/) { ++$i; next; } next unless $i >= 0; $section[$i] .= "$_\n"; } my $comments1; my $comments2; my $comments3; if ($section[0] =~ /\n(.*?)=Microarray Data=/gs){ $comments1 = $1; } if ($section[1] =~ /\n(.*?)=Pathway Information=/gs){ $comments2 = $1; } if ($section[2] =~ /\n(.*?)=Aditional Info=/gs){ $comments3 = $1; } print $comments1, $comments2, $comments3;
Thanks for all pointers. If anyone can think of a way of making this neater and simpler that would be great. But otherwise it's working so I'm happy!
Thanks.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Regular Expressions Challenge
by ig (Vicar) on May 18, 2010 at 10:00 UTC |