phpbar.de logo

Mailinglisten-Archive

[php] Regular Expression zum Stopwoerter filtern

[php] Regular Expression zum Stopwoerter filtern

Ralf Eggert php_(at)_phpcenter.de
Sat, 15 Dec 2001 22:07:51 +0100


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