Ich habe ein Dokument, wo es eine Adresse gibt, aber am Anfang gibt es ein Datum. Ich möchte eine Regex, um die Adresse zu extrahieren, weil ich nur das Datum bekomme.Wie man Adresse mit regulären Ausdrücken extrahiert
Das Format der Adresse
- 1 zu 5 Nummern dann
- Raum dann
- aufeinanderfolgende Worte, aber keine Ziffern dann
- Raum oder Komma dann
- Wort dann
- space oder Komma dann
- 2 Großbuchstaben (am Ende dieser zwei le tters)
heißt
- 5664 rue pierre labelle montreal QC
- 5456 avenue martin curé, Sherbrooke, QC
Ich versuchte dies aber ich nichts. Ich habe mehr als ein paar Stunden gespielt, aber manchmal bekomme ich das Datum des Dokuments, das vor der Adresse steht, und dann zwei Wörter am Anfang des Absatzes.
"\\d{1,5}\\s(\\b\\w+\\b){1,2}\\w*\\s?,?\\w*\\s?,?\\w*\\s?,?[A-ZA-Z]"
Dies ist Teil des Textes
23. Juli 2016
George Washington bei 5664 leben rue pierre labelle montreal QC G1H 3A4. Lorem ipsum dolor sitzen amet, consectetur adipiscing elit.
Ein weiteres Dokument
5. Januar 2016
Juana Perez auf 5456 avenue curé martin leben, Sherbrooke, QC, G1H 3A8. Lorem ipsum dolor sitzen amet, consectetur adipiscing elit.
Ein weiteres Dokument
Salvador Dali living at
5 Ch Ste-Catherine
Montreal QC
J2S 8W3
Diese finden vielleicht ein bisschen chaotisch, da jede Adresse ihr eigenes Format zu haben scheint. Dürfen wir fragen, woher die Quelle für diese Adressen kommt, und vielleicht gibt es eine Möglichkeit für Sie, sie mit allen im gleichen Format zu exportieren? –
Wir sind dabei, diese Daten zu vereinheitlichen und einen Wechsel zu unseren Lieferanten vorzuschlagen. In der Zwischenzeit stammen alle Texte aus Verträgen verschiedener Lieferanten. Wir erzeugen die Datei lokal (und gespeichert in db) über einen Service, aber der Text wird von ihnen gesendet. Wir haben 3 Muster identifiziert, die ich in meinen Beispielen angegeben habe. Es gibt viele Verträge, aber dies sind die 3 Adressenformate. –
Ich gab Ihnen eine Lösung unten. Ich denke, Sie brauchen hier keine regulären Ausdrücke zu verwenden. –