Nachnamen aus Namensliste extrahieren


#1

Hallo,

ich bitte euch bei folgendem Problem um Unterstützung:

Aus einer Auflistung kommagetrennter Namen (Anzahl variabel bis max. 25) möchte ich gerne eine kommagetrennte Auflistung nur der Nachnamen erstellen, wobei angenommen werden soll, dass nur der jeweils direkt vor dem Komma stehende Name der Nachname sei. Doppelte Nachnamen sind also vernachlässigbar.

Aus z.B.:

Christopher Maltman, John Mark Ainsley, Jamie MacDougall, Simon Keenlyside

soll also werden:

Maltman, Ainsley, MacDougall, Keenlyside

Die kompletten Namen befinden sich im Feld Artist, die Nachnamen sollen ins Fed Albumartist

Vielen Dank und Gruß,

palmino


#2

Bei letzten EIntrag in der Liste gibt es kein Komma vor dem Nachnamen.
Bei John Mark Ainsley gibt es 2 Vornamen.

Wie willst du Gruppen behandeln, die keine Nachnamen haben (z.B. Earth, Wind & Fire; Dave, Dee, Dozy, Beaky, Mick & Titch; Okko, Lonzo, Chris, Barry und Timpe)?

Der folgende String löscht wenigstens immer den Vornamen beim letzten Namen - du müsstest also die Aktion mehrmals durchlaufen lassen mit einem geeigneten FIlter

Anfang Aktionengruppe

Aktion #1
Aktionstyp 4: Ersetzen mit regulärem Ausdruck
Feld _________________: ALBUMARTIST
Regulärer Ausdruck ___: (.*), .+ (.+)
Treffer ersetzen durch: $1;$2

[_] Groß-/Kleinschreibung berücksichtigen

Ende Aktionengruppe (1 Aktion)

Auch bleibt beim ersten Namen der Vorname stehen.
Und anschließend müsste man alle ; durch ein , ersetzen ....


#3

Hallo Ohrenkino,

es geht mir nur um Interpreten klassischer Musik, kein Problem also wegen der Bandnamen.
Ich wollte immer nur das jeweils letzte, einzelne Wort vor einem Komma herausfischen, doppelte Vornamen sollten somit auch herausfallen.

Deinen String kann ich ja in einer Aktionsgruppe 25 Mal durchöddeln lassen, danach Ersetzen des Semikolons dann wären wir schon fast am Ziel (bis auf den ersten Vornamen).

Ist zwar nicht sehr sexy, aber es geht ;-).

Vielen Dank für deine Mühe!!

Gruß, palmino


#4

Ja, begeistert war ich auch nicht davon. Und meistens gibt es hier im Forum Leute die deutlich besser zu Fuß sind mit den RegExp.

Mein Problem war/ist, dass man eben aufgrund der Gierigkeit oder deren Fehlen bei den regulären Ausdrücken, eben nur genau die definierten Stücke kriegt... hier 2: einmal vor und einmal hinter dem Vornamen. Und dann ist nach meinem Verständnis schon die nächste Datei dran.
Die Nicht-Gierigkeit der Regulären Ausdrücke lässt eben die Suche am Ende beginnen. Und wenn in dem Ende dann nicht das Muster das zweite Mal vorkommt (tut es nie), dann ist diese Datei eben fertig...


#5

Aktion: Tag-Feld formatieren
Feld: ALBUMARTIST
Formatstring: $trimRight($regexp(%ARTIST%', ','(?:.+?)\s(.+?,\s)','$1'),', ')
Vorschau
Vorher:
Christopher Maltman, John Mark Ainsley, Jamie MacDougall, Simon Keenlyside
Nachher:
Maltman, Mark Ainsley, MacDougall, Keenlyside

... oder ...

Aktion: Tag-Feld formatieren
Feld: ALBUMARTIST
Formatstring: $trimRight($regexp(%ARTIST%', ','(?:[^,]+\s)([^,]+?,\s)','$1'),', ')
Vorschau
Vorher:
Christopher Maltman, John Mark Ainsley, Jamie MacDougall, Simon Keenlyside
Nachher:
Maltman, Ainsley, MacDougall, Keenlyside

DD.20121016.2140.CEST


#6

Hallo Ohrenkino und DetlevD,

ich freue mich sehr!

Vielen, vielen Dank!!

palmino