Ankündigung

Einklappen
Keine Ankündigung bisher.

Sehr simples Problem mit einem Regex.

Einklappen

Neue Werbung 2019

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

  • Sehr simples Problem mit einem Regex.

    Ich habe den mathematischen Term 1+1, und nocht einmal diesen bekomme ich mit einem preg_split gesplittet:

    PHP-Code:
    <?php

    $math_term
    ="1+1";

    $arr  preg_split("/\+/"$math_termPREG_SPLIT_NO_EMPTY);

    foreach (
    $arr as $value) {
        print 
    $value;
        print 
    "\n";
    }
    Die Ausgabe ist aber nicht 1 und darunter 1, da er das Ding ja am + splitten soll, sondern die Ausgabe ist 1+1. Ich verstehe nicht, wieso das schiefgeht; was habe ich übersehen?

  • #2
    Vorweg: Warum muss es ein Regex sein? Reicht nicht explode?

    Es gibt übrigens fertige mathematische Parser, falls du sowas bauen willst. zB im www suchen: php math parser

    Zu Deiner Frage.. Lass den dritten Parameter weg.

    PHP-Code:
    $math_term="1+1";

    $arr  preg_split("/\+/"$math_term);

    print_r($arr);
    /*
    Array
    (
        [0] => 1
        [1] => 1
    )
    */ 

    Kommentar


    • #3
      Der flag ist der 4. Parameter nicht der Dritte.
      https://www.php.net/manual/en/function.preg-split.php
      Wenn du also die flags nutzen willst aber den 3. Parameter nicht setzen willst, dann nimmst du NULL als 3. Parameter.

      PHP-Code:
      $arr  preg_split("/\+/"$math_termNULL PREG_SPLIT_NO_EMPTY); 

      Kommentar


      • #4
        Vielen Dank, jetzt geht es.

        Kommentar


        • #5
          Zum Thema Formelparser:
          Habe dafür vor Jahren mal eine Klasse geschrieben (kleine One-File-Version), da alles was ich damals fand größer als meine ganze Applikation war.
          Ist so etwas allgemein von Interesse? Hier der Link zur Demo. Diese vermittelt hoffe ich anschaulich was die Klasse leistet.

          Kommentar


          • #6
            Vielen Dank. Naja, derzeit schraube ich an anderen Sachen (AJAX) rum.

            Kommentar

            Lädt...
            X