2017-01-25 4 views
-1

Ich habe eine EXAMPLE HERE von einigen regulären Ausdrücken, die den Breitengrad finden, der innerhalb des Beispiels gut zu funktionieren scheint. Ich übertragen diese über zu Python und Druckzeile mit Spiel und dann Zeichenfolge übereinstimmenPython REGEX gibt zusätzliche String-Daten zurück als regex101 Python

line = "position:  0.00ft Northing: 728398.54 ft Latitude:   31  38 40.268 N" 
Lat = re.findall(r"\d{1,3}.*\s\d{1,2}.*\s\d{1,2}.*N",line.translate(None, '\x00')) 
if len(Lat) > 0: 
    print(line) 
    latitude = Lat[0] 
    print(latitude) 
# 728398.54 ft Latitude:   31  38 40.268 N 

mit Wo habe ich in meinem regulären Ausdruck falsch gelaufen?

Ich mag zurück: "31 38 40,268 N"

+0

Bitte beschreiben Die Ergebnisse, die Sie sehen, sind falsch. – DyZ

+0

Die Zeile ist der zweite Ausgabe-Block und die Übereinstimmung ist der erste Ausgabe-Block. Die Ergebnisse, wie Sie in diesem Beispiel sehen können, sind, dass ich nach dem Latitude-Wert suche, der "31 38 40.268 N" @DYZ –

+0

ist. Bei regex101 verwenden Sie faule Punktraster, '. *?'. Hier zeigst du gierigen Punkt, '. *'. Die Daten scheinen sich von denen in Python zu unterscheiden, die Sie bei regex101 geteilt haben. –

Antwort

-1

Was ist mit dieser Regex statt: Latitude:\s*(\d{1,3})\s*(\d{1,2})\s*(\d{1,2}(?:\.\d+)?), Grad in der Gruppe 1, Minuten in der Gruppe 2 und Sekunden in Gruppe 3

import re 
line = "position:  0.00ft Northing: 728398.54 ft Latitude:   31  38 40.268 N" 
result = re.search(r"Latitude:\s*(\d{1,3})\s*(\d{1,2})\s*(\d{1,2}(?:\.\d+)?)", line) 
formatted = result.group(1) + " " + result.group(2) + " " + result.group(3) + " N" 
print(formatted) 
+0

Obwohl das eine interessante Lösung ist, existiert das Wort Latitude möglicherweise überhaupt nicht oder wird falsch geschrieben, so würde es ein Muster gegen die Verwendung des Breitengrades als Markierung bevorzugen –

+0

Einfach es entfernen, es funktioniert immer noch, wenn das Format ist wird nur für den Breitengrad verwendet. –

+0

Leider funktioniert auch die Gruppenmethode bei mir nicht –