kostenloser Webspace werbefrei: lima-city


Regex problem

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    bilo

    bilo hat kostenlosen Webspace.

    Hey, und zwar hab ich hier ein pattern von meinem damaligen Chatscript AutoIT-Sprache

    .*?|(How).*?|(do|are).*?|(you)?.*

    Doch wenn ich es in den preg_match mache kommt es zu Warnungen wie z. B. das:

    Warning: preg_match(): Unknown modifier '*'


    Ich weiß, dass es etwas mit "/" zu tun hat, aber ich verstehe nicht wo und wann ich das einsetzen muss.

    Ich brauche eure Hilfe
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. m**********n

    Ganz vorne und ganz hinten, also so:
    /.*?|(How).*?|(do|are).*?|(you)?.*/


    Das müsste gehen.

    Mfg

    mator
  4. Autor dieses Themas

    bilo

    bilo hat kostenlosen Webspace.

    Danke dir. Jetzt gehts. ABer kannst du mir erklären was dieses Slash bewirkt? Ich hab ein paar Erklärungen angeguckt, aber die gingen nicht so darauf ein.
  5. Delimiter (engl. to delimit ⇒ einschränken, begrenzen) dienen in der Sprache PHP zum Abgrenzen des Suchmusters vom Rest des Regulären Ausdrucks. Als Delimiter kann theoretisch jedes nicht-alphanumerische Zeichen außer dem Backslash verwendet werden.

    Delimiter sind in PHP notwendig, da hinter dem eigentlichen Suchmuster noch sogenannte Modifier notiert werden können, die das Verhalten des Ausdrucks beeinflussen können.

    Das als Delimiter verwendete Zeichen sollte sinnigerweise nicht im eigentlichen Suchmuster auftauchen, da es sonst als Delimiter interpretiert werden würde. Soll dieses Zeichen trotzdem im Suchmuster verwendet werden, gibt es zwei Möglichkeiten:

    1. man benutzt ein anderes Zeichen als Delimiter - was wohl die einfachste und gängigste Möglichkeit ist - oder
    2. man maskiert das entsprechende Zeichen, indem man ihm einen Backslash voranstellt und damit seine Bedeutung als Delimiter aufhebt.

    Ein häufig auftretender Fehler ist das Weglassen der Delimiter. In diesem Falle gibt es (bis auf Ausnahmen) eine Fehlermeldung seitens PHP. Das Verwenden des Delimiters innerhalb des Suchmusters produziert ebenso eine Fehlermeldung. Welche das im Einzelfall ist, hängt von der Struktur des Regulären Ausdrucks ab. So erhält man bei einem vergessenen Delimiter in diesem Falle

    abcde@domain\.com


    die Fehlermeldung Delimiter must not be alphanumeric or backslash, da sowohl der einleitende als auch der schließende Delimiter ein alphanumerisches Zeichen sind - nämlich ein a (erstes Zeichen) beziehungsweise ein m (letztes Zeichen).

    Im folgenden Beispiel

    @domain\.com


    aber erhält man die Fehlermeldung No ending delimiter found, da das erste Zeichen des Regulären Ausdrucks durchaus ein erlaubter Delimiter ist, aber kein abschließender Delimiter gleicher Art gefunden wurde.
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!