in reply to Re: How to improve regex for parsing equals delimited data
in thread How to improve regex for parsing equals delimited data

my @fld = split /\s*FIELD\w = /; shift @fld; # Zap empty first field print join(",",@fld ),"\n";
my @fld = /FIELD\w\s*=\s*(\S+)/g; print join( ',', @fld ), "\n";

Replies are listed 'Best First'.
Re^3: How to improve regex for parsing equals delimited data
by sauoq (Abbot) on May 11, 2012 at 03:51 UTC

    His fields can have spaces: "SOH: 169879251".

    -sauoq
    "My two cents aren't worth a dime.";
      my @fld = map /=s*(.+)/, /\b +\b/g; print join( ',', @fld ), "\n";

      Update: Thanks Lotus1, it should be:

      my @fld = map /=\s*(.+)/, split /\b +\b/; print join( ',', @fld ), "\n";

        I like the idea of using map this way but I couldn't get this to work. It just prints blank lines. I tried putting a '\' in front of the s* but that didn't help. It looks to me like the /\b +\b/g won't return anything without parenthesis. I'm not sure how to make this work.