Nur etwas kleines :-) splitten

B

bkames

Grünschnabel
Hallo,

ist sicherlich einfach aber:

$name="Harald Heinz Fritz Müller"

Jetzt würde ich gerne nach Nachname und Vorname splitten. Wobei der Vorname 1 oder X sein kann.

Raus soll

Vorname: Harald Heinz Fritz
Nachname: Müller

also nur in 2 Variablen

Sorry .. aber im Moment :headup:
 
Hi,

Sprache?

Bash:
Code:
$ name="Fritz Frank Mueller"
$ echo ${name% *}
Fritz Frank
$ echo ${name##* }
Mueller

Python:
Code:
>>> name="Fritz Frank Mueller"
>>> list = name.split(" ")
>>> list
['Fritz', 'Frank', 'Mueller']
>>> list[-1]
'Mueller'
>>> list[:-1]
['Fritz', 'Frank']

Aber wahrscheinlich meinst du Perl, das weiss ich so auswendig auch nicht. ;)

mfg,
bytepool
 
Falls Du tatsaechlich Perl meinst, kannst Du doch 'split' benutzen, dass Dir ein Feld mit (in Deinem Beispiel) vier Eintraegen liefert, von denen Du dann die ersten (4-1) in der einen und den letzten in der anderen Variable speichern kannst.
 
Jo, dachte auch dass Perl split kennt, und siehe da, es funktioniert fast genauso.

mfg,
bytepool
 
Upps

Ist ja ein gemischtes Forum.
Ja ich wollte es in Perl schreiben.

Mit split und reverse split konnte ich kein Ergebnis erzielen.
Selbst wenn ich mit Limits arbeite.

Wenn der vor und Nachname immer 1-4 groß wäre, könnte ich ja .... Aber wie gesagt das ist unbestimmt.
Was fix ist, ist erst der Vorname und dann der Nachname,
Also trennen nach dem ersten Leerzeichen von hinten. Doppelte Nachname oder von's ignoriere ich mal

Merci
 
Danke .. :-)

Nochmal eine Nacht drüber geschlaffen. Ich mach es nun so
Code:
#!/usr/bin/perl

$name="dada Fritz Hans Peter Wurst";
@neu = split (/ /,$name);
@neu2=splice(@neu,-1);

$Vorname= join(" ",@neu);
$Nachname=join(" ",@neu2);

print "$Vorname und $Nachname\n";
 
nur noch als Ergänzung: das geht in Perl mit einer kleinen regex auch ganz ohne split/join/...:
Code:
$name =~ /^(.*)\s+(.*)$/ and ($vorname, $nachname) = ($1, $2);
print "Vorname: $vorname\nName: $nachname\n";

Gruss
 
Ja. Genau das hab ich gesucht. Ist doch ein wenig schlanker als die split und join Sache.
 

Ähnliche Themen

Keine grafische Oberfläche (Debian Installation)

X11 Monitor Position

HandbrakeCLI Shell Skript

Freie Software auf dem Smartphone

Empfehlung für Server Distribution

Zurück
Oben