Helpdesk
Menschen Wissenschaft Politik Mystery Kriminalfälle Spiritualität Verschwörungen Technologie Ufologie Natur Umfragen Unterhaltung
weitere Rubriken
PhilosophieTräumeOrteEsoterikLiteraturAstronomieHelpdeskGruppenGamingFilmeMusikClashVerbesserungenAllmysteryEnglish
Diskussions-Übersichten
BesuchtTeilgenommenAlleNeueGeschlossenLesenswertSchlüsselwörter
Schiebe oft benutzte Tabs in die Navigationsleiste (zurücksetzen).

Frage zu Regular Expressions allgemein

34 Beiträge ▪ Schlüsselwörter: PHP, Preg_match ▪ Abonnieren: Feed E-Mail
AnGSt Diskussionsleiter
ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

Frage zu Regular Expressions allgemein

01.12.2014 um 13:25
Hi,

brauche etwas Hilfe da hier und im Web keine Antwort gefunden.


if ( preg_match("/^$keyword$/i", $word) ) {


Obige Zeile liefert mir, wenn das $keyword mit dem $word identisch ist (case egal).

Was ich will ist: Es soll auch dann überein stimmen, wenn das $keyword im $word als ganzes Wort vor kommt, also mit irgendwas wie Leerzeichen, Komma oder Punkt links und/oder rechts.

Trim geht nicht, weil es auch matchen soll, wenn $word zb "keyword 678" enthält. Also folgende Fälle sollen zB machen:

keyword
this is the keyword or not
keyword,
keyword.
keyword-otherword

Aber NICHT:

goodkeywordwithoutseparatingchars


Danke,
AGS


melden

Frage zu Regular Expressions allgemein

01.12.2014 um 13:29
@AnGSt
Damit ich dich richtig verstehe. Es soll nicht matchen, wenn keine Trenncharaktere da sind?


melden
AnGSt Diskussionsleiter
ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

Frage zu Regular Expressions allgemein

01.12.2014 um 13:30
Ja. :D


melden

Frage zu Regular Expressions allgemein

01.12.2014 um 13:30
Das stell ich mir schwer vor. Woher soll die Funktion wissen, was ein Trenncharakter ist und was nicht. Die müsstest du vorher alle definieren.


melden
AnGSt Diskussionsleiter
ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

Frage zu Regular Expressions allgemein

01.12.2014 um 13:31
Gibt es nicht eine Option "ganzes wort"?


melden

Frage zu Regular Expressions allgemein

01.12.2014 um 13:31
Aber ok, ich nehme mal an, nur Leerzeichen, Punkte und Komma sollen beachtet werden. Mal testen..


melden
AnGSt Diskussionsleiter
ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

Frage zu Regular Expressions allgemein

01.12.2014 um 13:32
@demented

Das würde erstmal reichen :)


melden
AnGSt Diskussionsleiter
ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

Frage zu Regular Expressions allgemein

01.12.2014 um 13:33
PS: wenn §keyword und $word genau überein stimmen, soll es natürlich auch matchen.


melden

Frage zu Regular Expressions allgemein

01.12.2014 um 13:33
Jap.. muss mich erstmal wieder reinfuchsen. Ich erinner mich aber grob daran, dass man irgendeine Auswahl an Charakteren festlegen konnte


melden
AnGSt Diskussionsleiter
ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

Frage zu Regular Expressions allgemein

01.12.2014 um 13:34
:)


melden

Frage zu Regular Expressions allgemein

01.12.2014 um 13:38
@AnGSt

versuchs mal mit .*?$keyword.*?


melden
AnGSt Diskussionsleiter
ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

Frage zu Regular Expressions allgemein

01.12.2014 um 13:41
Yeah, das zeckt! Danke! :D


melden

Frage zu Regular Expressions allgemein

01.12.2014 um 13:41
Oh.. so einfach ist das ^^


melden

Frage zu Regular Expressions allgemein

01.12.2014 um 13:44
@AnGSt

Seh grad, dass das auch jkadfhsdfgkeywordlhsdgsfg matched. Geht es trotzdem?


melden
AnGSt Diskussionsleiter
ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

Frage zu Regular Expressions allgemein

01.12.2014 um 13:45
@fregman

Nein, das darf nicht passieren. Denn dann könnte ich stristr() verwneden.


melden

Frage zu Regular Expressions allgemein

01.12.2014 um 13:45
@AnGSt

K gib mir ne Minute habs sicher gleich.


melden

Frage zu Regular Expressions allgemein

01.12.2014 um 13:47
@AnGSt


[^a-zA-Z]keyword[^a-zA-Z]

Das matched alle Strings die weder vor noch hinter dem Keyword einen Buchstaben haben, erlaubt aber jedes andere Zeichen. Solltest du noch andere Zeichen filtern wollen müssen die in die eckige Klammern, wobei du manche Zeichen maskieren musst, wenn sie in RegEx vorkommen.


melden

Frage zu Regular Expressions allgemein

01.12.2014 um 13:48
@fregman
hab ich auch schon probiert. bei mir meldet php aber
Warning: preg_match(): Unknown modifier 'k' in C:\http\test.php on line 5


melden

Frage zu Regular Expressions allgemein

01.12.2014 um 13:48
@demented

Und als Gruppe?

[^a-zA-Z](keyword)[^a-zA-Z]


melden
AnGSt Diskussionsleiter
ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

Frage zu Regular Expressions allgemein

01.12.2014 um 13:48
@fregman

Ich glaube das a-zA-Z zu viel des Guten ist, weil ich ja eh /i mache?


melden