String parsen

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

  • String parsen

    Hallo ich habe einen string, darin findet man an manchen stellen so was:
    "=>\n " das möchte ich ersetzen durch: "=>" also die neue Zeile und die Leerzeichen sollen verschwinden und durch ein einfaches "=>" ersetzt werden, aber nur an diesen Stellen, nicht überall.
    So nun könnte ich natürlich hingehen und einfach dies machen: $string = str_replace("=>\n ", "=>", $string); aber das Problem ist das an all diesen bestimmten Stellen x viele Leerzeichen vorkommen also es können 3 sein, es können 5 sein, es können x sein, etc.

  • #2
    Dann nimmt man halt preg_replace

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      Ja aber was kommt da für ein Suchmuster rein?

      Kommentar


      • #4
        Schon mal selbst probiert?
        Das hier ist ein Forum zur Selbsthilfe.

        Wenn du die Lösung willst poste ich dir gerne meine Bankdaten.

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          Ahja, naja ich hab mir dazu schon ein paar Anleitungen angeguckt aber nicht wirklich da durchgeschaut, sorry.

          Bis jetzt bin ich hier:
          PHP-Code:
          $string "Hallo =>\n   Welt =>\n      Hello =>\n            World";

          echo 
          "<b>Original String:</b> ".$string."<br>";

          echo 
          "<b>Neuer String:</b> ".preg_replace("=>\n""=>"$string); 
          Da Bekomme ich das:
          Code:
          Original String: Hallo =>  Welt =>  Hello =>  World
          
          Warning: preg_replace() [function.preg-replace]: No ending delimiter '=' found in C:\xampp\htdocs\system\system\debug.class.php on line 155
          Neuer String:
          Keine Ahnung was der von mir will
          Zuletzt geändert von lord_fritte; 01.10.2007, 22:17.

          Kommentar


          • #6
            Du musst dir mal vorstellen wie das Muster ausschauen kann, dass du ersetzen willst.
            Also da können beliebig viele Lerzeichen kommen, dann => und dann wieder beliebig viele Leerzeichen und dann ein \n
            In einem regulären Ausdruck könnte das so ausschauen
            PHP-Code:
            $reg '/\\s{0,}=>\\s{0,}\\n/is'
            Der sucht also nach \s (Leerzeichen) gefolgt von => und wieder Leerzeichen und den Zeilenumbruch.
            Jetzt schaust du dir noch preg_replace() im Manual an und dein Problem sollte gelöst sein.
            Noch ein Tipp: Guten Seite zum Testen

            Gruss

            tobi
            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

            Kommentar


            • #7
              So: '/=>\n\s{0,}/is' gehts, danke.

              Kommentar


              • #8
                Da \n auch ein weißes Zeichen (\s) ist, kannst du dir das auch noch vereinfachen!
                Code:
                '/\s*=>\s+/is';
                Müsste imho auch gehen!

                Kommentar


                • #9
                  Da \n auch ein weißes Zeichen (\s) ist, kannst du dir das auch noch vereinfachen!
                  imho nicht genau das was der TS will. Weil damit auch =>\s\s (ohne \n) ersetzt würde. Der TS sucht ja explizit nach \n
                  Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                  [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                  Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                  Kommentar

                  Lädt...
                  X