Format in einer XML anpassen

Boah Leute denkt doch mal ein bisschen praktisch, es geht hier doch nur um billige Telefonbucheinträge. :)
Wenn das Skript ein paar davon vergeigt ist das doch kein Beinbruch.

Mit ein bisschen XML parsen + Regex bekommt man das doch halbwegs ordentlich hin.
Wenn der Name nur aus einem Wort besteht, ist es einfach der Vorname. Punkt.
Ansonsten kann man den Namen z.B. damit splitten:
Code:
^(.+)\s+(?<!.*(van|von|prof|dr).*)(.+)$

Da das Skript ja anscheinend mehrmals auf den gleichen Datenbestand angewendet werden soll, könnte es evtl. auch gleich noch ne kleine (menschenlesbare) Lookup Table generieren, sodass man Fehler leicht ausbügeln kann:
Code:
hash_of_phone_and_name;first_name;last_name;err_possible;
105f1ea98124a31c931;Lionel;Messi;false;
85923c38a3b56f12577;Ruud;van Nistelrooy;true;
So könnte man leicht nach Fehlern suchen und diese korrigieren. Beim nächsten Aufruf könnte das Skript dann die Korrekturen berücksichtigen.

----------

[ChAoZ schrieb:
]
Nun stehst du vor dem Problem die Daten ordentlich in die DB zu übertragen.
In DE kein Problem. In FR muss man den String an der richtigen Position zerteilen.
- Berliner Allee 15
- Wiener Straße 1/2a-3a/4
- Mozartplatz 3a
- Alte Ricklinger Straße 59-61
- Wiener Straße 1/2
- Markt 16B1
- Straße des 17. Juni 28
Challenge accepted :king:
Code:
^(.+?)(([0-9]+[A-z]?\s*[/-]?\s*)+(?!=[0-9]))$
;)
 
Also wenn ich das auf der Seite teste, dann klappts:
regex-addr.png
Straße (Gruppe 1): Straße des 17. Juni
Nummer (Gruppe 2): 28

Auch das sieht doch brauchbar aus:
regex-name.png
Vorname (Gruppe 1): John
Nachname (Gruppe 3): Doe

Vorname (Gruppe 1): Park
Nachname (Gruppe 3): Chan-Wook


Wenn Vor- und Nachname vertauscht sind, hat man wenig Chancen.
Dafür ist ja dann der Vorschlag mit der Lookup Table (manuelle Prüfung) gedacht.

Edit: Ich hab nie behauptet, dass es in allen Fällen problemlos möglich ist die Namen zu splitten. Aber ich denke die "Trefferquote" reicht für die Problemstellung des TE.
 
Zuletzt bearbeitet:
Hab mal gleich dein Regex im Projekt übernommen.
War etwas Leistungsstärker als unsere Lösung^^
 

Ähnliche Themen

Zurück
Oben