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.
In reply to Re: Regular Expressions Challenge
by danj35
in thread Regular Expressions Challenge
by danj35
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |