BruceDB has asked for the wisdom of the Perl Monks concerning the following question:
Hi,
I have a feeling there is a much much succinct way of handling this.
In this example $val could be any number of digits between 1 and 8 with a comma separating every third; also, the text is found within a much larger piece of text (as opposed to the simple example used here).
I'm looking for a numeric value followed by " view" and then want to remove any commas.Thanks!
my $num_views = -1; my $val = "23,452,789 views"; if ($val =~ /([\d]*),([\d]*),([\d]*) views/) { $num_views = ($1 * 1000000) + ($2 * 1000) + $3; print "# Matched number of views [$num_views].\n"; } else { if ($val =~ /([\d]*),([\d]*) views/) { $num_views = ($1 * 1000) + $2; print "# Matched number of views [$num_views].\n"; } else { if ($val =~ /([\d]*) views/) { $num_views = $1; print "# Matched number of views [$num_views].\n"; } else { print "# Error.\n"; } } }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: How to consolidate regex's?
by BrowserUk (Patriarch) on Feb 04, 2010 at 23:31 UTC | |
|
Re: How to consolidate regex's?
by jwkrahn (Abbot) on Feb 04, 2010 at 23:13 UTC | |
|
Re: How to consolidate regex's?
by jethro (Monsignor) on Feb 04, 2010 at 23:09 UTC | |
by ikegami (Patriarch) on Feb 05, 2010 at 07:30 UTC | |
|
Re: How to consolidate regex's?
by samarzone (Pilgrim) on Feb 05, 2010 at 13:58 UTC |