Mailinglisten-Archive |
Marcel Kurz wrote: > Hallo Sebastian, > >> du musst \ doppelt escapen also, \\\\ >> >> $pattern = '/\[KNR\](.*?)\[\\\\KNR\]/is'; > kannst du mir das noch mal genauer erklären ? Damit sowas: echo 'wie geht's?'; möglich ist (so geht es ja nicht, php denkt dann ja, der String wäre nach dem "geht" zu Ende) kann man echo 'wie geht\'s?'; // Ergebnis: wie geht's? schreiben. Und wenn du als Ergebnis: Bla\' haben willst, kannst du echo 'Bla\\'; schreiben. Wenn dein php dieses hier parst: $regex ='/\[KNR\](.*?)\[\\\\KNR\]/is'; steht in $regex also dies: '/\[KNR\](.*?)\[\\KNR\]/is Dann kommt die Regexmaschine, die genau das gleiche Problem hat: Bestimmte Zeichen haben Sonderfunktionen (zum Beispiel '['). Und wenn du nicht willst, dass die diese besondere Bedeutung haben... Mir ist zwar gerade nicht bewusst, dann \K eine spezielle Bedeutung hat, aber prinzipiell tust du nicht schlecht daran alle deine escaped doppelt durchzuführen. Es schadet nicht und dein Programm geht nicht den Bach runter, wenn mal ein neuer Befehl hinzu kommt. > Wenn ich \ escapen will dann hab ich gedacht ich muss nur > ein \ davorsetzen also \\ schreiben bei dir setze ich ja > DREI \\\ vor das eigentliche \... > bei den [ langt ja auch nur ein \ um zu escapen > jetzt bin ich etwas verwirrt... > aber deine Lösung funktioniert auch danke... > > Beste Grüße > Marcel Yannik
php::bar PHP Wiki - Listenarchive