Hi, ich habe ein Problem mit der Textsuche und RegEx.
Also, ich zähle in einem Text das Vorkommen bestimmter Zeichenfolgen am Wortende. Nun kann "Wortende" in einem längeren Text heißen: Dort ist ein blank, ein Punkt, ein Fragezeichen, Klammer zu, Komma usw.
Diese Trennzeichen packe ich also in einen array
@wortende = (' ', ',', '.', '?', ')');
und lasse in einer foreach-Schleife zählen:
foreach my $wo (@wortende) {
$anzahl = $text =~ /$suchbegriff$wo/$suchbegriff$wo/gi;
}
Das haut so natürlich nicht hin, weil etliche der Zeichen vordefiniert sind. Okay, dann maskiere ich eben einige der Zeichen:
@wortende = (' ', ',', '.', '?', ')');
Resultat: Bullshit! Denn jetzt wird beim Suchbegriff "gehen" nicht gesucht nach "gehen.", sondern nach "gehen.", nicht nach "gehen?", sondern nach "gehen?"
Und das steht so natürlich nicht im Text, so dass nichts gefunden wird.
Was mache ich falsch?