in reply to substitution with regex
Hey dude, not everywhere has perfect climate like Santa Monica! As you may know, negative temps exist at some locations (and are denoted with a leading 'M' in METAR reports).
Here is the skeleton of a solution handling negative temperatures (using the reading from Fairbanks, AK at this time for testing).
(But see also Geo::METAR for an oldie-but-goodie parser for this format, which provides the temp in F in its dump output.)
Output:use strict; use warnings; while ( my $line = <DATA> ) { $line =~ s{ \s (M?\d{2}) / (M?\d{2}) \s } { sprintf ' %d/%d ', convert($1), convert($2) }xeg; print $line; } sub convert { $_[0] =~ s/M/-/r * 9/5 + 32 }; __DATA__ KSMO 181551Z 00000KT 10SM CLR 14/08 A3009 RMK AO2 SLP189 T01440083 PAFA 190153Z 00000KT 5SM -SN BR FEW012 BKN025 OVC070 M07/M08 A2959 RMK + AO2 SLP030 T10671078
KSMO 181551Z 00000KT 10SM CLR 57/46 A3009 RMK AO2 SLP189 T01440083 PAFA 190153Z 00000KT 5SM -SN BR FEW012 BKN025 OVC070 19/17 A2959 RMK A +O2 SLP030 T10671078
Hope this helps!
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: substitution with regex
by drose2211 (Sexton) on Jan 23, 2018 at 03:15 UTC | |
by Athanasius (Archbishop) on Jan 23, 2018 at 06:46 UTC | |
by AnomalousMonk (Archbishop) on Jan 23, 2018 at 12:15 UTC |