"# ... #is" in preg_replace
cayaphas
- php
0 romy0 lulu1 Sven Rautenberg0 cayaphas
Tach,
Ich versuch mich gerade in regexp´s einzuarbeiten, und mit ner auflistung der ausdfrücke und so kommt man nach und nach auch durch ...
Ich häng nur an einem bestimmten Teil von nem Ausdruck, und find nirgends was dazu. Folgender ausdruck zur ersetzung von BBCode:
preg_replace("#[b](.+?)[/b]#is", "<b>\1</b>", $string);
Ich steig nicht dahinter, was das einschliessende # .. #is bedeutet ... irgendwie hab ich es nirgends in irgendwelchen regexp ausdrucks erklärungen und manuals gefunden ...
Ich bräuchte bloss nen hinweis oder en link ... habs weder im php-manual gefunden noch im selfphp ...
gruss
caya
Hi caya,
preg_replace("#[b](.+?)[/b]#is", "<b>\1</b>", $string);
Ich steig nicht dahinter, was das einschliessende # .. #is bedeutet ... irgendwie hab ich es nirgends in irgendwelchen regexp ausdrucks erklärungen und manuals gefunden ...
ich kann Dir nicht genau erklären, was dahinter steckt, ich weiß nur, dass es den RegEx-Block umschließt und Du Zeichen deiner Wahl nehmen kannst (ich bevorzuge Ausrufungszeichen) Nach diesen Zeichen kannst Du z.B. noch Operatoren definieren, welche fest vorgegeben sind, z.B. i um Groß-Klein-Schreibung mit einzubeziehen.
http://de3.php.net/manual/en/reference.pcre.pattern.syntax.php
hier gibt es Beispiele dazu.
ciao
romy
Huhu caya
Ich steig nicht dahinter, was das einschliessende # .. #is bedeutet ...
Die Stichworte dazu sind "delimiter" und "modifier".
Ein kleine Einführung in RegExp findest Du auch dort:
http://gnosis.cx/publish/programming/regular_expressions.html
Viele Grüße
lulu
Moin!
preg_replace("#[b](.+?)[/b]#is", "<b>\1</b>", $string);
Ich steig nicht dahinter, was das einschliessende # .. #is bedeutet ...
Anstatt der normalen Slashes / kann man auch andere Zeichen nehmen, die vorne und hinten den regulären Ausdruck begrenzen. Das empfiehlt sich vor allem dann, wenn der Slash auch im regulären Ausdruck selbst häufig benutzt wird - mit einem anderen Zeichen muß man den dann nicht escapen.
Die Modifikatoren i und s am Ende stehen für "PCRE_CASELESS" (Buchstaben werden case-insensitive gefunden) und "PCRE_DOTALL" (der Punkt steht wirklich für jedes beliebige Zeichen, auch für Zeilenumbrüche).
Siehe http://de.php.net/manual/de/reference.pcre.pattern.modifiers.php
tach ...
super geil .. dank euch ...!!
gruss
caya