Mailinglisten-Archive |
Nabend Liste,
ich versuche mit einer Regular Expression aus einem Text alle
Stopwoerter zu filtern, komme aber irgendwie nicht ganz auf den
richtigen Dreh.
Ich habe folgenden Beispieltext und ein Array mit allen Woertern, die
aus dem Text gefiltert werden sollen:
$text = "dies ist nur ein kleiner text aus dem alle stopwoerter"
$text .= " gefiltert werden sollen";
$stopwords[] = "dies";
$stopwords[] = "ist";
$stopwords[] = "ein";
$stopwords[] = "aus";
$stopwords[] = "dem";
$stopwords[] = "werden";
$stopwords[] = "sollen";
Mit folgender Regular Expression moechte werden aber nicht alle
Stoppwoerter gefiltert. Wenn zwei Stopwoerter hintereinander stehen
wird immer nur das erste gefiltert:
$search[] = "= " . implode(" | ", $stopwords) . " =i";
$search[] = "= +=";
$replace[] = " ";
$replace[] = " ";
$text = trim(preg_replace($search, $replace, $text));
Das Ergebnis sieht so aus:
dies nur kleiner text dem alle stopwoerter gefiltert sollen
Ich erwarte aber folgendes Ergebnis:
nur kleiner text alle stopwoerter gefiltert
Wie muss ich die Regular Expression umdichten, damit ich das erwartete
Ergebnis erhalte? Bin fuer jeden Tipp dankbar.
Gruss,
Ralf
--
_____________________________________________
In-Greece.de - die Griechenlandcommunity
____ http://www.in-greece.de/xmas.php3 ______
php::bar PHP Wiki - Listenarchive