noob-Frage zu preg_replace

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • noob-Frage zu preg_replace

    Nabend zusammen

    Ich verzweifel gleich. Ich hab ohne Ende mit der ollen Funktion rumprobiert, aber irgendwie bring ich es nicht auf die Reihe, auch die Suchfkt. hat leider net geholfen, weil ich die Beispiele nicht auf mein Problem umgemmünzt bekomme

    Also: ich hab einen String, und alle darin enthaltenen Ziffern (0-9) sollen einfach daraus entfernt werden. Ist glaub ich super-einfach, aber ich steig durch die Zusammensetzung der Klammer nicht durch

    Thx schonmal für die Hilfe und noch nen schönen Abend,
    Gruß P2oldi

  • #2
    so?
    PHP Code:
    $test"<!doctype html public \"-//W3C//DTD HTML 4.0 //EN\">
    <html>
    <head>
           <title>Title here!</title>
    </head>
    <body>
          te3\\r\\n4s5t
    </body>
    </html> "
    ;
    echo 
    preg_replace("![0-9]!","",$test); 
    Kissolino.com

    Comment


    • #3
      genau so, vielen Dank

      Comment


      • #4
        mist, leider reichte das noch nicht so ganz

        PHP Code:
        preg_replace("![0-9]!","",$charname
        so werden ja nur Zahlen rausgeworfen. Allerdings hat sich das nun etwas verkompliziert

        ich muß jetzt alle Sonderzeichen (inkl. ä, ö, ü, ß) rausnehmen, außer - und _ (sprich erlaubt ist A-Z, a-z, -, _)
        allerdings dürfen diese beiden Sonderzeichen auch nicht am Anfang oder Ende des Strings stehen.

        Mag mir da nochmal jemand unter die Arme greifen bitte?

        Danke schonmal im Voraus,
        Gruß P2oldi

        Comment


        • #5
          evt so:

          $string = preg_replace('/[^a-z_-]/i',"",$string);

          teste mal
          Beantworte nie Threads mit mehr als 15 followups...
          Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

          Comment


          • #6
            schon fast

            das einzige was noch funktioniert, aber nicht gehen darf ist, daß - und _ noch am Anfang und Ende des Strings stehen bleiben. Die dürfen zwar im allg. im String enthalten sein, aber nur in der Mitte....

            Comment


            • #7
              ajo das is easy aber Du willst sicher auch mal selbst was testen...
              Beantworte nie Threads mit mehr als 15 followups...
              Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

              Comment


              • #8
                ok, thx trotzdem. Hab mir mal ein Tut gesucht, das auf den ersten Blick sehr verständlich aussieht Wenn's wider Erwarten nicht klappen sollte, frag ich nochmal

                Comment


                • #9
                  Hab mir mal ein Tut gesucht, das auf den ersten Blick sehr verständlich aussieht
                  Doch hoffentlich das von PHP-resource

                  Comment


                  • #10
                    sorry, muß das Teil nochmal ausgraben

                    funzt jetzt in soweit, das halt alles außer a-z, - und _ im String erlaubt ist. Gut und schön, aber ich bekomm den Anfang bzw. das Ende nicht gebacken, steig auch durchs Tut nicht so wirklich durch

                    PHP Code:
                    $charnameneu preg_replace('/[a-z-_]/i',"",$charname); 
                    ist das funzende.

                    Wollte nun mittels !, $ und ^ den Anfang und das Ende machen...
                    PHP Code:
                    $charnameneu preg_replace('!^-_[a-z-_]!-_$/i',"",$charname); 
                    das verändert aber gar nix am String Und so wie ich das verstanden habe, negiert er jetzt (!), das am Anfang (^) ein - oder _ vorkommt, dann eine beliebeige Zahl aus a-z,- und _ und am Ende ($) dann noch einmal negiert die - und _

                    Stimmt wohl so aber nicht... Mag sich nochmal jemand erbarmen bitte? Dann ist auch Ruhe für heute

                    Comment


                    • #11
                      Mit PCRE:
                      PHP Code:
                      $text preg_replace('/(ä|ö|ü)/s'''$text); 
                      Mit str_replace was hier viel schneller und sinnvoller ist:
                      PHP Code:
                      $text str_replace('ä'''$text);
                      $text str_replace('ö'''$text);
                      $text str_replace('ü'''$text); 

                      Comment


                      • #12
                        hmm.... aber das ersetzt ja alle äöü in dem String, das tut ja gar nicht not, weil die obere der beiden von mir geposteten Anweisungen das schon macht. Ich bekomm es einfach nicht gebackt, die erste Anweisung so zu erwitern das die Zeichen "-" und "_" am Anfang und am Ende des Strings abgeschnitten werden

                        Comment


                        • #13
                          Probier mal:
                          PHP Code:
                          <?php
                          $text 
                          preg_replace('/^(-|_*)(.+)(-|_*)$/s'''$text);
                          ?>

                          Comment


                          • #14
                            ok, jetzt bin ich total verwirrt, jetzt funzt es überhaupt nicht mehr, auch mein altes nicht ?!?!

                            $test ist nach dem preg_replace immer leer

                            PHP Code:
                            $charnameneu preg_replace('/[a-z-_]/i',"",$charname);
                            //$charnameneu = preg_replace('/^(-|_*)(.+)(-|_*)$/i', '', $charname);
                            echo "<br>charname alt: ".$charname;
                            echo 
                            "<br>charname neu: ".$charnameneu
                            egal welches der beiden Statements ich versuche, $charnameneu ist immer leer

                            Comment


                            • #15
                              Weil du jedes Alphabetische Zeichen löschst!
                              PHP Code:
                              <?php
                              $text 
                              preg_replace('/^(-|_*)(.+)(-|_*)$/s''\\\\2'$text);
                              ?>
                              Sry, der Regex war falsch.
                              Last edited by electr0n; 10-11-2003, 14:23.

                              Comment

                              Working...
                              X