Thread Perl Script Anpassung: Aus eins mach zwei... (12 answers)
Opened by ManfredG. at 2007-05-26 02:25

betterworld
 2007-05-26 16:07
#76977 #76977
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
[quote=ManfredG.,26.05.2007, 02:43]- Letztes Wort = Nachname
- Alles davor = Vorname[/quote]
Das sollte so gehen:
Code: (dl )
my ($vorname, $nachname) = $t =~ /^\s*(\S(?:.*\S)?)\s+(\S+)\z/s or die "Zu wenig Woerter";

Opis Loesung mit split hingegen wird immer nur die ersten beiden Woerter herausholen und den Rest wegschmeissen.

Die folgende Version sollte auch Sachen wie "van" und "de la" richtig behandeln, einfach anhand der Tatsache, dass sie normalerweise klein geschrieben sind:
Code: (dl )
1
2
3
4
5
6
7
my @komponenten = $t =~ /\S+/g;
my $vorname = shift @komponenten;
die "Zu wenig Woerter" unless @komponenten;
while (@komponenten > 1 && $komponenten[0] !~ /^[[:lower:]]/) {
$vorname .= ' ' . shift(@komponenten);
}
my $nachname = join ' ', @komponenten;
\n\n

<!--EDIT|betterworld|1180181773-->

View full thread Perl Script Anpassung: Aus eins mach zwei...