suchen
Thomas Lachmann
- perl
halihallo,
gibt es eine einfache möglichkeit einen String nach dem Inhalt einer Liste durchsuchen zu lassen?
@liste=("name","vorname","strasse");
$text1 = "mein name ist dieter";
$text2 = "mein vorname ist klaus";
$text3 = "die strasse in der ich wohne heisst weingarten";
$text4 = "hallo ich freue mich sehr";
Die Suche soll nun mei text1-3 erfolgreich sein und bei text4 nicht.
wie könnte ich das am einfachsten machen??
vielen Dank
Thomas
Hallo Thomas!
Schau Dir mal das Kapitel über "Reguläre Ausdrücke mit Alternativen" an:
<../../tgcg.htm#a5>
Benutze nun die JOIN-Funktion, um Deine Liste (@liste) mit zu verbinden und in den Skalar $suchalternativen zu schreiben.
Mit der Anweisung
if ($suchstring =~ /$suchalternativen/ )
kannst Du nun prüfen, ob eines der Worte in dem $suchstring vorkommt.
Problematik: Wenn jemand bei Deinem $text4 schreibt: "Ich freue mich sehr auf den Besuch von Herrn Strasser.". Dann findet er nämlich auch das Wort Strasse. Dieses Problem hast Du aber wahrscheinlich bei jeder "Suchmethode".
Also aufpassen!
Bye
Christian Schnagl
PS: Vielleicht gibts noch eine einfachere Lösung, aber die o.g. ist mir spontan eingefallen.
Hallo Thomas!
Hi,
Schau Dir mal das Kapitel über "Reguläre Ausdrücke mit Alternativen" an:
<../../tgcg.htm#a5>
in <../../tgcg.htm#a4>
wird ein ähnliches Beispiel beschrieben und es findet nur die gewünschten Wörter
Benutze nun die JOIN-Funktion, um Deine Liste (@liste) mit zu verbinden und in den Skalar $suchalternativen zu schreiben.
Mit der Anweisung
if ($suchstring =~ /$suchalternativen/ )
kannst Du nun prüfen, ob eines der Worte in dem $suchstring vorkommt.
Problematik: Wenn jemand bei Deinem $text4 schreibt: "Ich freue mich sehr auf den Besuch von Herrn Strasser.". Dann findet er nämlich auch das Wort Strasse. Dieses Problem hast Du aber wahrscheinlich bei jeder "Suchmethode".
Also aufpassen!
ByeChristian Schnagl
PS: Vielleicht gibts noch eine einfachere Lösung, aber die o.g. ist mir spontan eingefallen.
Gruß Jörg
Hallo Jörg,
in <../../tgcg.htm#a4>
wird ein ähnliches Beispiel beschrieben und es findet nur die gewünschten Wörter
in diesem Beispiel findet Perl nur einzelne Wörter. Ihm ging es um eine Liste. Man müßte #a4 und #a5 kombinieren. Das Problem bleibt aber trotzdem bestehen, da es in jedem Bereich "Doppeldeutigkeiten" gibt. Ich wollte nur auf die Problematik aufmerksam machen. Diese kann auch nicht durch "Einzelwortsuche" umgangen werden (Computer sind nicht so superschlau wie Du...). Da müßte es schon eine "Sinn-Suche" geben, um die in Deinen Augen "gewünschten" Wörter zu finden. Weitere Diskussionen bitte per E-Mail !
Bye
Christian Schnagl