Perl - Getting value from comma separated line -
i've got perl file parser trying rewrite. dynamic parser, , need extract value comma separated line.
the line want 1 value looks this:
entryname-8,44544,99955,52,156,15:16:16,15:19:16 (this line in each parsed file starts withentryname-. after - changes each file beingness parsed)
i want value after sec comma. (99955 in illustration above)
i have tried next without luck:
if (/ entryname-\((.*)\,(.*)\,(.*)\)/ ) { $entry_nr = $3; print "entry number = $entry_nr"; next; }
the problem first capture string .* greedy, consume of string. backtrack find 2 commas , result match end.
also:
you matching literal parentheses\( unusual reason. since not have such, never match. you not need escape commas \, you cannot have random space in regex / entry... unless have 1 in target string you not need capture strings not going use a simple prepare utilize stricter capture grouping (including points above):
if (/entryname-\d+,\d+,(\d+)/ ) this capture $1.
as mpapec points out in comment, may wish utilize text::csv parse csv data. lot safer. if info simple enough, solution do.
perl
No comments:
Post a Comment