Ankündigung

Einklappen
Keine Ankündigung bisher.

eregi_replace Platzhalter

Einklappen

Neue Werbung 2019

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

  • eregi_replace Platzhalter

    Da kenne ich den: ([^\[]+)

    Gilt der für alle Zeichen?

  • #2
    Häh? Watt soll datt?

    Kommentar


    • #3
      Nein. Das gilt für ein oder mehr Zeichen ohne \ und [

      Außderdem ist eregi_replace und das gesamte posix regular expressions Modul veraltet. In neuen Versionen von PHP wird das sogar in der Standardeinstellung nicht mehr verfügbar sein. Verwende statt dessen [man]pcre[/man].

      Kommentar


      • #4
        Nö. Nur für [ . Das \ ist das Escapezeichen innerhalb der Klasse (bzw. generell innerhalb des Ausdrucks) . Würde ich jetzt mal behaupten.

        Kommentar


        • #5
          An dieser Stelle nicht.
          PHP-Code:
          $s 'abc\d[ef';
          echo 
          eregi_replace('([^\[]+)''x'$s); 
          x\x[x

          Kommentar


          • #6
            Ok, wieder was gelernt

            Kommentar


            • #7
              Dass sowohl PHP als auch das posix Modul an dieser Stelle auf diese Art "mitdenken" ...weiß nicht genau, wie ich das finde.
              Auf der einen Seite finde ich es generell nicht gut, wenn der Sprache/dem Computer Raum für Interpretation gelassen wird (wie in Javascript "oh, ein Fehler, versuchen wir es doch einfach nochmal mit einem ; an der Stelle"). Andererseits hätte ich "keinen Bock" auf [^\\\\[]

              Kommentar


              • #8
                Und täglich grüßt ereg…
                Warum nicht langsam mal auf preg umsteigen?

                Kommentar


                • #9
                  Andererseits hätte ich "keinen Bock" auf [^\\\\[]
                  Da wiederum kann ereg/preg nun nix für. Den Ausdruck als Sting betrachtend ist die doppelte Auszeichnung nur konsequent. Viel mehr stört mich, dass das wohl mit Sicherheit nen Fehler auslösen wird: ([^[\]+) statt ([^\[]+)

                  Kommentar


                  • #10
                    Auch dann nicht.
                    PHP-Code:
                    $s 'abc\d[ef';
                    $pattern '([^[\]+)';

                    echo 
                    $pattern' ';
                    echo 
                    eregi_replace('([^\[]+)''x'$s); 
                    ([^[\]+) x\x[x

                    Kommentar


                    • #11
                      bei preg schon. Habe ich ausprobiert.
                      Compilation failed: missing terminating ] for character class at offset 6
                      PHP-Code:
                      preg_replace ('#[^[\]+#' 'dsfsd' dfshdjshgfjs); 
                      [edit]
                      Ähhm häh? Du mußt das Pattern schon anwenden

                      Kommentar


                      • #12
                        ja, ich habe die falsche Version kopiert.
                        Und zwar nicht nur einmal, sondern gleich zweimal.

                        PHP-Code:
                        <?php
                        $s 
                        'abc\d[ef';
                        $pattern '([^[\]+)';

                        echo 
                        $pattern' ';
                        echo 
                        eregi_replace($pattern'x'$s);
                        ([^[\]+) x\x[x

                        Kommentar


                        • #13
                          Tatsache, Ereg meckert nicht. Sonderbar. Aber da ist mir preg ja gleich noch sympathischer.

                          Kommentar


                          • #14
                            Ja, mir auch.
                            Zumal solche Kleinigkeiten es auch schön knifflig machen können, von regex auf pcre umzusteigen :-/

                            Kommentar


                            • #15
                              Ok, preg ist schöner^^

                              Kommentar

                              Lädt...
                              X