Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] String nach best. Zeichen durchsuchen

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

  • [Erledigt] String nach best. Zeichen durchsuchen

    Moin!

    Ich will in einem String das letzte Zeichen finden, welches kein Buchstabe, keine Zahl und kein "_" ist.

    Hat da jemand eine Lösung für? Ich kriegs irgendwie nicht hin

    Danke


  • #2
    Hi,

    du machst das ganz einfach per Schleife:

    1. Testen ob das letzte Zeichen eines von den besagten ist:
    $char = substr($text, strlen($text)-1);

    2. Falls das Zeichen nicht eines von den besagten ist, den String kuerzen:
    $text = substr($text, 0, strlen($text)-1);

    3. und die Schleife wiederholen.
    Am Ende jedes Schleifendurchgangs noch die Laenge des Reststrings pruefen:
    if(strlen($text) < 1)
    break;

    So koenntest du das loesen.
    Klingt aufwendig, ist aber relativ schnell geloest

    Kommentar


    • #3
      1. Testen ob das letzte Zeichen eines von den besagten ist:
      $char = substr($text, strlen($text)-1);
      ----------------------------------------------------------
      Das ist ja genau der Punkt wo es hakt. Das kann man ja wunderbar mit einer reg-expression machen, nur leider steh ich mit denen auf Kriegsfuss

      Kommentar


      • #4
        Wie sieht denn so ein String dann aus ?

        Kommentar


        • #5
          zum Beispiel:

          $ergebnis = funktionsaufruf($parameter);

          Da will ich den Funktionsnamen extrahieren. Die End-Position ist bereits festgelegt, nur die Startposition noch nicht. Da bleibt

          $ergebnis = funktionsaufruf

          also ist die Startposition die letzte Stelle im string, wo kein Buchstabe, kein Unterstrich und keine Zahl mehr ist.

          Kommentar


          • #6
            wenn es wirklich um genau das Problem geht, hilft Dir evtl. http://php.net/tokenizer weiter

            Kommentar


            • #7
              Ich steig da grad nicht wirklich durch. Gibt es dafür irgendwo ein Tutorial oder so? Ich versteh nicht was die Texte von mir wollen

              Kommentar


              • #8
                Ooooochh.... 9 Minuten. Da kann ich mir kaum vorstellen, dass Du das wie ein PHP-Fortgeschrittener durchgearbeitet hast.

                Sieh Dir wenigstens das Beispiel unter http://php.net/token_get_all mal an.
                Um sicher zu ghen, hier der Link auf die englischsprachige Doku, in der das Beispiel sicher enthalten ist.
                http://de2.php.net/manual/en/function.token-get-all.php

                Kommentar


                • #9
                  Ok also so wie ich das verstdanden hab willst du den String innerhalb der Klammern auslesen willst wuerd ich dir ganz einfach Redex empfehlen.
                  Das ist aber schon sehr kompliziert, besonders als Anfaenger.

                  Um den String vor den Klammern zu bekommen (Funktionsname)
                  ->
                  $text = "funktionsaufruf($parameter)";
                  $text = substr($text, 0, stripos($text, '(')-1);
                  echo $text;
                  // Ausgabe
                  // funktionsaufruf


                  So muesste es auch relativ einfach gehen

                  Mit freundlichen Gruessen

                  Kommentar


                  • #10
                    Hab mir da das letzte Beispiel unten auf der Seite angeguckt und es kam die Erleuchtung

                    Danke für den Tip

                    Kommentar


                    • #11
                      @chubie:

                      Das Problem ist, die Stelle zu finden, wo der Funktionsaufruf beginnt. Das Extrahieren ist nicht das Problem.
                      Ich hab´s jetzt mit Volkers Tokenizer hingekriegt. Danke

                      Kommentar

                      Lädt...
                      X