cayaphas: "# ... #is" in preg_replace

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

  1. 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

  2. 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

    --
    bythewaythewebsuxgoofflineandenjoytheday
  3. 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

    • Sven Rautenberg
    1. tach ...

      super geil .. dank euch ...!!

      gruss
      caya