Matching n parentheses in perl regex
- by coding_hero
Hi, I've got some data that I'm parsing in Perl, and will be adding more and more differently formatted data in the near future.  What I would like to do is write an easy-to-use function, that I could pass a string and a regex to, and it would return anything in parentheses.  It would work something like this (pseudocode):
sub parse {
  $data = shift;
  $regex = shift;
  $data =~ eval ("m/$regex/")
  foreach $x ($1...$n)
  {
    push (@ra, $x); 
  }
  return \@ra;
}
Then, I could call it like this:
@subs = parse ($data, '^"([0-9]+)",([^:]*):(\W+):([A-Z]{3}[0-9]{5}),ID=([0-9]+)');
As you can see, there's a couple of issues with this code.  I don't know if the eval would work, the 'foreach' definitely wouldn't work, and without knowing how many parentheses there are, I don't know how many times to loop.
This is too complicated for split, so if there's another function or possibility that I'm overlooking, let me know.
Thanks for your help!