in reply to regular expression help
Hi, if I understand your question correct, you want to extract information from each token. So splitting the string into tokens first and then extracting any useful information one by one might be a suitable approach for you?
Prints:use strict; sub extract { chomp(my $orig = shift); foreach ( split(/,/, $orig) ) { # scan list of tokens if ( / <\*\d+> ([^<]+) < (\d+) : (\d+) > /x ) { # do something with extracted information print "got $1/$2/$3 from '$orig'\n"; } } } extract($_) while (<DATA>); __DATA__ <*2>H<3:0>,<*2>I<3:0>,...,<*2>Z<2:0> H<3:0>,<*2>I<3:0>,...,<*2>Z<2:0>
got H/3/0 from '<*2>H<3:0>,<*2>I<3:0>,...,<*2>Z<2:0>' got I/3/0 from '<*2>H<3:0>,<*2>I<3:0>,...,<*2>Z<2:0>' got Z/2/0 from '<*2>H<3:0>,<*2>I<3:0>,...,<*2>Z<2:0>' got I/3/0 from 'H<3:0>,<*2>I<3:0>,...,<*2>Z<2:0>' got Z/2/0 from 'H<3:0>,<*2>I<3:0>,...,<*2>Z<2:0>'
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: regular expression help
by pip9ball (Acolyte) on Jun 04, 2009 at 14:41 UTC |