So I’m writing a Python package that will parse data from a real-time NOAAPORT feed, and throw it into a SQL database. I’m having a hard time wrapping my head around RegEx.
I’m particularly looking to match the LAT…LON line:
LAT...LON 3153 10127 3153 10118 3152 10118 3142 10122
3141 10127 3152 10127
and the best I can come up with is:
r'^LAT...LON(.*)'
But every two numbers after LAT…LON are latitude and longitude points, and I can’t seem to get it to match the next line of points.
Also this is optional, I would also like to group off certain sections of this tornado warning. I want to separate the WMO header “TORSJT” (The first three letters are the advisory type, and the last three are the weather office that issued the advisory. TOR=Tornado Warning SJT=San Angelo, TX weather office)
And then I just want the warning text separated:
BULLETIN - EAS ACTIVATION REQUESTED
TORNADO WARNING
NATIONAL WEATHER SERVICE SAN ANGELO TX
802 PM CDT SAT APR 7 2012
THE NATIONAL WEATHER SERVICE IN SAN ANGELO HAS ISSUED A
* TORNADO WARNING FOR...
NORTHWESTERN IRION COUNTY IN WEST CENTRAL TEXAS...
* UNTIL 815 PM CDT
* AT 757 PM CDT...A SEVERE THUNDERSTORM CAPABLE OF PRODUCING A
TORNADO WAS OVER EXTREME NORTHWESTERN IRION COUNTY...OR 24 MILES
NORTHEAST OF BIG LAKE...MOVING SOUTH SOUTHWEST AT 15 MPH. THIS
STORM HAS A HISTORY OF PRODUCING A TORNADO AND MAY PRODUCE A
TORNADO AT ANY TIME.
IN ADDITION TO DANGEROUS TORNADIC WINDS...OTHER HAZARDS INCLUDE...
LARGE DAMAGING HAIL UP TO TENNIS BALL SIZE.
DAMAGING STRAIGHT LINE WINDS IN EXCESS OF 60 MPH.
POTENTIALLY DEADLY LIGHTNING.
*THE TORNADO WILL REMAIN OVER MAINLY RURAL AREAS OF...
NORTHWESTERN IRION COUNTY.
PRECAUTIONARY/PREPAREDNESS ACTIONS...
A SEVERE THUNDERSTORM WATCH REMAINS IN EFFECT UNTIL 1000 PM CDT
SATURDAY EVENING FOR WEST CENTRAL TEXAS.
&&
I basically want everything placed into a dictionary, with all 3 getting its own key.
Here’s the whole warning intact for reference:
368
WFUS54 KSJT 080102
TORSJT
TXC235-080115-
/O.NEW.KSJT.TO.W.0012.120408T0102Z-120408T0115Z/
BULLETIN - EAS ACTIVATION REQUESTED
TORNADO WARNING
NATIONAL WEATHER SERVICE SAN ANGELO TX
802 PM CDT SAT APR 7 2012
THE NATIONAL WEATHER SERVICE IN SAN ANGELO HAS ISSUED A
* TORNADO WARNING FOR...
NORTHWESTERN IRION COUNTY IN WEST CENTRAL TEXAS...
* UNTIL 815 PM CDT
* AT 757 PM CDT...A SEVERE THUNDERSTORM CAPABLE OF PRODUCING A
TORNADO WAS OVER EXTREME NORTHWESTERN IRION COUNTY...OR 24 MILES
NORTHEAST OF BIG LAKE...MOVING SOUTH SOUTHWEST AT 15 MPH. THIS
STORM HAS A HISTORY OF PRODUCING A TORNADO AND MAY PRODUCE A
TORNADO AT ANY TIME.
IN ADDITION TO DANGEROUS TORNADIC WINDS...OTHER HAZARDS INCLUDE...
LARGE DAMAGING HAIL UP TO TENNIS BALL SIZE.
DAMAGING STRAIGHT LINE WINDS IN EXCESS OF 60 MPH.
POTENTIALLY DEADLY LIGHTNING.
*THE TORNADO WILL REMAIN OVER MAINLY RURAL AREAS OF...
NORTHWESTERN IRION COUNTY.
PRECAUTIONARY/PREPAREDNESS ACTIONS...
A SEVERE THUNDERSTORM WATCH REMAINS IN EFFECT UNTIL 1000 PM CDT
SATURDAY EVENING FOR WEST CENTRAL TEXAS.
&&
LAT...LON 3153 10127 3153 10118 3152 10118 3142 10122
3141 10127 3152 10127
TIME...MOT...LOC 0102Z 355DEG 11KT 3148 10125
$$
You’re basically trying to perform multi-line regex matching.
Instead of using greedy matching,
.*, try using something like this:In a live console session: