Ich habe kürzlich angefangen, Python zu lernen, und ich erstelle ein kleines Projekt, um meinen Arbeitspendel zu verfolgen. Ich arbeite in der Luftfahrt. Die Grundlage für dieses Projekt ist daher, meinen Arbeitsplan (Kader) an einen SQLite3 db zu analysieren. Der Regex erfasst nicht alles, was ich dachte, also hoffe ich auf ein paar Tipps / Feedback zu dem, was ich falsch mache. Ich bin auch offen für Vorschläge, wie ich diese Aufgabe besser ausführen kann....[xFDP 00:00][DTwSB 08:00]\nThu22 C/I ABC 0530\nXX 1260 ABC 0630 !1135 DEF S7M8XX 1261 DEF 1220 !1540 ABC S7M8\nC/O!1600 ABC [FT 08:25]\n[DT 10:30][FDT 10:10]...
< /code>
Die Regex, die ich mir ausgedacht habe, ist Folgendes: < /p>
flight_duty_regex = re.compile(r'''(
(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun) # Weekday
(\d{2})\s # Date
C/I\s # Check-in
(\w{3})\s # Check-in station
(!?\d{4})\s # Check-in time (optional ! for different timezone)
(?:(XX|YY)\s # Prefix
(\d{3,4})\s # Flight number
(\w{3})\s # Departure station
(!?\d{4})\s # Departure time (optional ! for different timezone)
(!?\d{4})\s # Arrival time (optional ! for different timezone)
(\w{3})\s # Arrival station
(?:S7M8|S738)\s?)+ # Aircraft type
C/O # Check-out
(!?\d{4})\s # Check-out time (optional ! for different timezone)
(\w{3}) # Check-out station
)''', re.VERBOSE)
< /code>
, was die folgende Ausgabe erzeugt: < /p>
[('Thu22 C/I ABC 0530\nXX 1260 ABC 0630 !1135 DEF S7M8XX 1261 DEF 1220 !1540 ABC S7M8\nC/O!1600 ABC', '22', 'ABC', '0530', 'XX', '1261', 'DEF', '1220', '!1540', 'ABC', '!1600', 'ABC')]
< /code>
Ich habe den gesamten Regex als Gruppe hinzugefügt, um zu zeigen, dass beide Flüge (xx 1260 und xx 1261) anfangs erfasst werden. Bei der Auflistung der einzelnen Gruppen ist jedoch nur der letzte Flug, XX 1261, aufgeführt. Ich habe dies auch mit Textzeichenfolgen getestet, die mehr als zwei Flüge enthalten, und dennoch listet es nur den letzten Flug auf. < /P>
Was fehlt mir auch? Die Textzeichenfolge aus dem Kader -PDF ist sehr strukturiert, aber es gibt einige Variationen in der vielen Flügen, die ich pro Tag habe usw. Gibt es eine einfachere Möglichkeit, diese Daten zu erfassen? Soll ich benannte Gruppen verwenden und jede Textzeile durchsuchen, anstatt .findall ()?
Regex Capture -Probleme Parsing Arbeitsplan - andere praktikable Optionen? ⇐ Python
-
- Similar Topics
- Replies
- Views
- Last post
-
-
Gibt es eine praktikable Möglichkeit, CSS -Keyframe -Animation mit JS auszulösen?
by Anonymous » » in CSS - 0 Replies
- 13 Views
-
Last post by Anonymous
-