regulärer Ausdruck
Man ich nerve dieses Forum ja extrem ^^
Ich möchte vor und nach einem Suchtreffer 25 Zeichen mit ausgeben lassen. Mein regulärer Ausdruck lautet: eregi("^.{0-50}".$suchbegriff.".{0-50}^",$inhalt , $regs); $regs[1] sollte der erste Treffer sein, der ausgegeben wird. Die Zeichen vor und nach dem $suchbegriff können alle zeichen sein. Ich hoffe einer kennt sich damit aus ^^ Ich bekomme nur folgenden Fehler: Warning: eregi() [function.eregi]: REG_BADBR in .......includes/suche.inc.php4 on line 30 Gruß, nivRam |
AW: regulärer Ausdruck
hi,
versuch es mal so (ist nicht getestet): PHP-Code:
|
AW: regulärer Ausdruck
Okay, es funktioniert.
Sehe ich das richtig, das bei Index 0 der erste, bei 1 der zweite Treffer usw. drinsteht? Besten Dank schonmal.. Gruß, nivRam edit: Wenn wir das mit den Zeichen machen, kann man das auch einbauen das er bis sagen wir 25 vor und nach guckt und dann aber ein Leerzeichen da stehn muss?? Es kann ja sein das wie gesagt es so anfängt ...a ist meine Mutter. "Mama ist meine Mutter" ^^ Da ich aber kein einzelnen Buchstaben dastehen haben will, soll er 25 Zeichen und dann nur ein komplettes Wort nehmen! |
AW: regulärer Ausdruck
nein, die variable $match wird von preg_match immer als array definiert, in diesem fall ist das array aber immer nur ein element groß. in anderen fällen, wenn teil-treffer gefordert sind z.b. so:
PHP-Code:
|
AW: regulärer Ausdruck
Ok, das mit den Leerzeichen habe ich auch hinbekommen!
Mein Ausdruck sieht nun so aus: preg_match('/[ ].{0,100}'.$suchbegriff.'.{0,100}[ |.]/', $inhalt, $match); Kann es sein das preg_match auf Groß und Kleinschreibung achtet? Wie kann ich das ganze mit eregi machen? Weil das geht nich.. oder ich hab was falsch gemacht! Gruß, nivRam |
AW: regulärer Ausdruck
wenn preg_match nicht auf groß/klein schreibung achen soll, dann setz den modifikator "i" (.../i', $inhalt, $match);"
wenn auf ganze worte geachtet werden soll, dann ist das ganze etwas komplexer zugestalten... |
AW: regulärer Ausdruck
PHP-Code:
es wird also nach dem linken äussersten leerzeichen innerhalb der 25 zeichen und und dem rechten äussersten leerzeichen innerhalb von 25 zeichen gesucht. so werden keine wörter mehr abgeschitten. desweiteren würde ich dir von ereg oder eregi abraten, da diese im schnitt langsamer und ausserdem nicht so schön umfangreich nutzbar wie preg's sind. |
AW: regulärer Ausdruck
Jau, funktioniert! Danke!
Zwei Fragen noch: Was bedeutet das "s" ? Und kennt irgendwer eine verständliche Seite über joins in Abfragen? Im SQL-Referenzhandbuch hab ich irgendwie nich wirklich schönes gefunden. Gruß, nivRam |
AW: regulärer Ausdruck
|
AW: regulärer Ausdruck
"s" steht für "whitespaces" (leerzeichen), sprich das ist die gruppierung von:
leerzeichen (space) tabulator (tab) seitenumbruch (formfeed) wagenrücklauf (carriage return) zeilenumbruch (newline) aber vorsicht! "S" ist die negitierung der obigen gruppe. Zitat:
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 09:27:04 Uhr. |
Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.