Suchfunktion in Perl
Christian Bliß
- perl
Hallo,
habe ein Problem mit meiner Suchfunktion, ich hoffe jemand kann mir helfen!
Programmausschnitt:
open(ARTIKEL, "artikel.txt") or die "$!";
while (<ARTIKEL>) {
my ($artname, $artnr, $preis) = split(/##/, $_);
chop($bild);
if ($artname =~ m/$such_text/i) {
print qq|Gefunden!|;
}
else {
print qq|Nicht gefunden!|;
}
}
close(ARTIKEL);
$such_text wird von einem Formular übergeben. Nun zu meinem Problem:
Wenn ich nun nur ein oder zwei Buchstaben eingebe, findet meine Suchfunktion ALLE Artikel, die diese Buchstaben enthalten. Ich möchte jedoch, dass lediglich die Artikel gefunden werden, die die Buchstaben als einzelnes Wort haben.
Bsp:
So sollte es sein:
MfG Christian
Hallo,
Wenn ich nun nur ein oder zwei Buchstaben eingebe, findet meine Suchfunktion ALLE Artikel, die diese Buchstaben enthalten. Ich möchte jedoch, dass lediglich die Artikel gefunden werden, die die Buchstaben als einzelnes Wort haben.
Dann setze doch vor und nach den Suchstring einen Vergleich auf Begrezner. Die Möglichkeiten wären hier
vor dem Wort: Stringanfang oder Whitespace
nach dem Wort: Stringende oder Whitespace
Also suchst du nach /(^|\s)$suchstring($|\s)/, dann sollte es klappen.
Viele Grüße,
Stefan