Reguläre Ausdrücke

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    Zitat von onemorenerd Beitrag anzeigen
    Wo kann man das mal nachlesen?
    Ich hatte da so ein Buch empfohlen
    [FONT="Helvetica"]twitter.com/unset[/FONT]

    Shitstorm Podcast – Wöchentliches Auskotzen

    Kommentar


    • #17
      Da sollte aber auch erwähnt werden, dass man die Klammern - anders als sonstige Delimiter - nicht escapen muss bzw. nicht darf.

      Noch bekloppter: Der Punkt ist ja auch so ein Zeichen mit besonderer Bedeutung in einem Ausdruck. Den darf man auch als Delimiter verwenden. Aber anders als die Klammern muss man ihn escapen und verliert ihn damit als besonderes Zeichen. Mit dem * ist es ähnlich.
      PHP-Code:
      $matches preg_grep('*(foo.bar)*', array('foobar''foo.bar''foo*bar''foo.*bar'));
      var_dump($matches);

      $matches preg_grep('*(foo.\*bar)*', array('foobar''foo.bar''foo*bar''foo.*bar'));
      var_dump($matches); 
      Berni spendiert [COLOR=Silver]k[/COLOR]eins der übrig gebliebenen Bücher für denjenigen, der aus dem Kopf sagen kann, wie die Ausgabe aussieht.

      @unset: Ich wills gar nicht lesen, ich will eigentlich, dass es gar nicht zulässig ist. Hat doch keinen Mehrwert, bringt nur Sonderfälle mit sich, die man bedenken muss.
      Zuletzt geändert von onemorenerd; 25.11.2009, 16:06.

      Kommentar


      • #18
        (das gesagte gilt übrigens tatsächlich zum größten Teil nur für Perl Style Regular Expressions … naja, nicht umsonst sind die Dinger Hirnf*ck galore )

        @onemorenerd: Das Buch gibt dir allerdings einen schönen überblick über die verschiedenen Ausgeburten.
        [FONT="Helvetica"]twitter.com/unset[/FONT]

        Shitstorm Podcast – Wöchentliches Auskotzen

        Kommentar


        • #19
          Zitat von onemorenerd Beitrag anzeigen
          Da sollte aber auch erwähnt werden, dass man die Klammern - anders als sonstige Delimiter - nicht escapen muss bzw. nicht darf.
          Sollte man erwähnen, ja:
          Zitat von AmicaNoctis Beitrag anzeigen
          Man muss nur aufpassen, dass dieser Begrenzer nicht unmaskiert im Pattern vorkommt (Ausnahme Klammerpaare, die haben sowieso Sonderbedeutung).

          Zitat von onemorenerd Beitrag anzeigen
          Hat doch keinen Mehrwert, bringt nur Sonderfälle mit sich, die man bedenken muss.
          Au contraire, ich finde, dass es damit noch einfacher ist, weil man eben nicht aufpassen muss, welchen Delimiter man jetzt hat und ob man den maskieren muss. Ich nehme zwar auch lieber /, aber dein Argument ist nicht stichhaltig
          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
          Super, danke!
          [/COLOR]

          Kommentar


          • #20
            Nicht stichhaltig? Du sagst doch selbst "Ausnahme Klammerpaare ... Sonderbedeutung".

            Kommentar


            • #21
              Zitat von onemorenerd Beitrag anzeigen
              "Delimiter must be alphanumeric or backslash"
              Der genaue Wortlaut ist "Delimiter must not be alphanumeric or backslash", es sind also ein ganzer Haufen Zeichen als Delimiter möglich. Aber du hast schon recht, es ist eine weitere zu bedenkende Sonderregel, dass Klammerpaare mögliche Delimiter sind. Obwohl ein <[a-z]> auch ganz schick aussieht

              Kommentar


              • #22
                Zitat von onemorenerd Beitrag anzeigen
                Tatsächlich. Oh man, wie bescheuert ist das denn?!
                Wo kann man das mal nachlesen? Gibts noch mehr Zeichen?
                In der offiziellen Anleitung findet sich nichts dazu. Das könnte damit zusammenhängen, dass die Delimiter ein PHP-Feature sind. Eigentlich braucht man sie ja nicht (mehr).
                Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

                Kommentar

                Lädt...
                X