Ankündigung

Einklappen
Keine Ankündigung bisher.

Hilfe bei Regex

Einklappen

Neue Werbung 2019

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

  • Hilfe bei Regex

    Hallo,

    ich versuche folgenden dynamisch erstellten String anhand von Wörter und|oder|mit in Gruppen aufzuteilen:
    Code:
    Tiroler Blutwurst mit Sauerkraut und Bratkartoffeln oder Röstis
    Rauskommen soll:
    PHP-Code:
    [
        
    => 'Tiroler Blutwurst',
        
    => 'mit Sauerkraut',
        
    => 'und Bratkartoffel',
        
    => 'oder Röstis'

    Mein Versuch scheitert:
    Code:
    (( und *| mit *| oder *)[^(oder |und |mit)])
    Mein Ansatz:
    ( und *| mit *| oder *)
    finde Leerzeichen
    • gefolgt von und/oder/mit
    • gefolgt von Leerzeichen und jeden Character bis zum Antreffen von (oder |und |mit)

    Danke für Hilfe

  • #2
    Mein Versuch scheitert:
    Code:
    Code:
    (( und *| mit *| oder *)[^(oder |und |mit)])
    Mein Ansatz:
    regex versuche werden bsp hier:
    https://regex101.com/

    brauchbar erklärt .

    und weil ich es so gerne mache :
    https://www.php.de/forum/webentwickl...rf-hier-posten

    nebenbei halte ich regex hier nicht für das mittel der wahl und es stellt sich die frage , ob das eine hausaufgabe ist

    Kommentar


    • #3
      Zitat von tomBuilder Beitrag anzeigen

      regex versuche werden bsp hier:
      https://regex101.com/
      Danke für den Hinweis, die Seite benutze ich immer, aber die RegEx funktioniert dort auch nicht, deshalb meine Anfrage zur Hilfe

      Kommentar


      • #4
        Zitat von tomBuilder Beitrag anzeigen
        ...nebenbei halte ich regex hier nicht für das mittel der wahl und es stellt sich die frage , ob das eine hausaufgabe ist
        Keine Hausaufgabe und wenn das nicht dein geeignete Mittel der Wahl ist, dann lass das doch hier wissen welcher dein Ansatz ist.

        Kommentar


        • #5
          Zitat von rammi Beitrag anzeigen
          Danke für den Hinweis, die Seite benutze ich immer, aber die RegEx funktioniert dort auch nicht, deshalb meine Anfrage zur Hilfe
          gerne, die seite erkärt aber auch wieso nicht
          wenn du sicher sein kannst dass leerzeichen vorkommen:

          PHP-Code:
          var_dump (explode(" ""Tiroler Blutwurst mit Sauerkraut und Bratkartoffeln oder Röstis")); 
          so den string zerlegelen.
          dann kommst du sicher allein weiter ?

          Kommentar


          • #6
            Zitat von tomBuilder Beitrag anzeigen

            gerne, die seite erkärt aber auch wieso nicht
            wenn du sicher sein kannst dass leerzeichen vorkommen:

            PHP-Code:
            var_dump (explode(" ""Tiroler Blutwurst mit Sauerkraut und Bratkartoffeln oder Röstis")); 
            so den string zerlegelen.
            Mmmh...das war mein erster Ansatz. Aber um tatsächlich zu gruppieren wie oben angegeben, denke ich, das eine RegEx besser geeignet ist.

            Kommentar


            • #7
              Zitat von rammi Beitrag anzeigen
              Mmmh...das war mein erster Ansatz. Aber um tatsächlich zu gruppieren wie oben angegeben, denke ich, das eine RegEx besser geeignet ist.
              ich würde jetzt mit :
              sammle hauptgericht
              wenn mt sammle beilage
              wenn oder sammle nächste beilage
              weitermachen.

              Kommentar


              • #8
                Solche Geschichten fordern doch ein wenig, halten jung und sind somit gut für meine Rentnerbirne..

                PHP-Code:
                <?php
                $re 
                '/^.*?(?=mit|und|oder)|(mit|und|oder)(.*?)(?=(mit|und|oder))|(?=mit|und|oder).*$/m';
                $str 'Tiroler Blutwurst mit Sauerkraut und Bratkartoffeln oder Röstis';
                preg_match_all($re$str$matches);
                echo 
                "<pre>";
                print_r ($matches[0]);
                echo 
                "</pre>";
                Code:
                Array
                (
                    [0] => Tiroler Blutwurst 
                    [1] => mit Sauerkraut 
                    [2] => und Bratkartoffeln 
                    [3] => oder Röstis
                )
                Außerdem habe ich jetzt Appetit auf:
                "Tiroler Blutwurst mit Sauerkraut und Bratkartoffeln"
                Kannst mir ja eine Portion schicken..

                Kommentar


                • #9
                  Zitat von kaminbausatz Beitrag anzeigen
                  Solche Geschichten fordern doch ein wenig, halten jung und sind somit gut für meine Rentnerbirne..

                  PHP-Code:
                  <?php
                  $re 
                  '/^.*?(?=mit|und|oder)|(mit|und|oder)(.*?)(?=(mit|und|oder))|(?=mit|und|oder).*$/m';
                  $str 'Tiroler Blutwurst mit Sauerkraut und Bratkartoffeln oder Röstis';
                  preg_match_all($re$str$matches);
                  echo 
                  "<pre>";
                  print_r ($matches[0]);
                  echo 
                  "</pre>";
                  Code:
                  Array
                  (
                  [0] => Tiroler Blutwurst
                  [1] => mit Sauerkraut
                  [2] => und Bratkartoffeln
                  [3] => oder Röstis
                  )
                  Das schaut gut aus und aus meiner Sicht eleganter als mit explode() und foreach() zu basteln

                  Zitat von kaminbausatz Beitrag anzeigen
                  ...
                  Außerdem habe ich jetzt Appetit auf:
                  "Tiroler Blutwurst mit Sauerkraut und Bratkartoffeln"
                  Kannst mir ja eine Portion schicken...
                  Verdient hättest du es ja

                  Danke

                  Kommentar


                  • #10
                    chapeau
                    wenn dies keine übung ist :
                    die ganze speisekarte und dann auch noch die sommerkarte ....
                    wie den auch sei, eoin array hast du auch so, die logik musst du ja irgendwie noch bauen
                    rammi

                    Kommentar

                    Lädt...
                    X