Problem bei einem Regulären Ausdruck

mitch_byu_kennen

Erfahrenes Mitglied
Hi,

also mein Problem ist das Funktioniert nicht so wie ich will...:-)
So sieht mein Regulärer Ausdruck zur Zeit aus.
Hier wird eine Tabelle durchsucht auf ein bestimmtes Wort was in der Variablen $wort steht.
Wenn das Wort z.B. "Alf" ist was ich suche, gibt er mir allerdings auch die Strings aus welche z.B. "Alfred" lauten und dass will ich nicht. Ich will nur die Strings ausgegeben haben die auch nur das Wort "Alf" enthalten, wie muss ich da meinen Regulären Ausdruck verändern?
PHP:
while($row=mysql_fetch_array($result)){
	if(preg_match("/$wort/i",$row[1])) echo "<br>".$row[1];
};

mfg mitch
 
hi,

hm ja das Funktioniert aber nur wenn vor und nach dem Wort ein Leerzeichen ist aber sobald ein Ausrufezeichen, Fragezeichen usw. nach dem Wort kommt klappt es nicht mehr oder wenn das Wort am Anfang der Zelle steht funktioniert es auch nicht!
Da müsste ich ja einen Regulären Ausdruck schreiben der alle eventualitäten raus filtert!
Aber das kann ich nicht wirklich! Da brauch ich Hilfe!

mfg mitch
 
Es wuerde doch reichen einen Ausdruck zu schrauben welcher vor und nach dem Wort auf alles prueft was kein Buchstabe ist, oder?

Ich kenn mich mit RegEx (nicht FedEx!) auch noch nicht so gut aus (Schande ueber mein Haupt! ;) ), ich klick mir die immer zusammen.

Nachtrag:
Wie steht's damit?
Code:
[\W]\$word[\W]
 
\b\$word\b

\b findet "Wortgrenzen".
gemeint ist mit Wortgrenzen, dass das Zeichen einen anderen "Typ" hat...hast du im Ausdruck Buchstaben, findet es alles, was kein Buchstabe ist. Es findet auch Zeilenanfang/Ende.
 
Hi,

na ja ich hab's mal mit dem \W gemacht, weil ich mich mit der Wortgrenze nicht so auskenne aber damit werd ich es auch mal versuchen.

Hab allerdings schon wieder ein Problem, falls in der Variablen mal z.B. 2 Wörter stehen nach denen gesucht werden soll weis ich nicht wie ich das machen soll!
Beispiel: "Mein Name ist Klaus"
Jetzt suche ich nach "name" und "klaus" dann findet der das auch aber wenn ich erst "klaus" und dann "name" eingebe findet der das nicht mehr!
PHP:
if(preg_match("/\Wname\W.*\Wklaus\W"....)
wie kann ich das machen das egal wie rum ich etwas suche es trotzdem gefunden wird?

mfg mitch
 
Zurück