letztes Wort/Wörter finden
Martin
- perl
0 Ed X0 Grummelchen
Hallo,
ich möchte von einem String (Satz) z.B. "Uli und Petra sind zuhause"
das letzte Wort herrausfiltern, also "zuhause", und in einer Variablen speichern. Zusätzlich möchte ich prüfen ob das Wort vor dem letzten Wort ein bestimmtes (z.B. "sind") ist. Ist dies der Fall soll es in die Variablen mit aufgenommen werden. In diesem Beispiel würde die variable dann "sind zuhause" beinhalten. Der Anfang, also "Uli und Petra" soll in einer anderen Variablen gespeichert werden. Es kann aber auch vorkommen das nach "zuhause " auch ein Leerzeichen Auftritt!
Dies sollte dabei herrauskommen:
"Uli und Petra sind zuhause "
$1 = "Uli und Petra";
$2 = "sind zuhause";
oder
"Uli und Petra waren zuhause"
$1 = "Uli und Petra waren";
$2 = "zuhause";
Ich fummel hier mit split() und =~ s/ herum, schaffe es aber nicht die richtige Lösung zu finden. Wer kann mir helfen?
Gruß
Martin
Hi,
Ich fummel hier mit split() und =~ s/ herum, schaffe es aber nicht die richtige Lösung zu finden. Wer kann mir helfen?
mit split() erhälst du ein Array und mit negativen indizes kannst du
ein array von hinten aufrollen! Ergo:
sollte in etwa so gehen ;-) (ungetestet)
bye eddie
Hej Martin,
es gibt da zwei Möglichkeiten:
my $Satz = "Uli und Petra sind zuhause ";
my $Part1 = $Satz;
$Part1 =~ s/([sind]?\s+[\w]+)\s*$//;
my $Part2 = $1;
oder mit Suchanweisung:
$_ = "Uli und Petra sind zuhause ";
/([sind]?\s+[\w]+)\s*$/;
my $Part2 = $1;
my $Part1 = $'; # <= ob es $', $´ oder $` heißt, mußt Du mal nachlesen.
Zwar ungetestet, sollte aber funktionieren.
Viel Spaß damit,
Marko