Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Problem bei regulärem Ausdruck

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Problem bei regulärem Ausdruck

    Hallo Leute!

    Ich habe ein Problem mit einem regulären Ausdruck.
    Und zwar möchte ich folgenden Beispiel-String zerlegen:

    heute+ist+dienstag++aber+am+besten?+wäre+freitag

    Zerlegt werden soll nach jedem +, ++ und ?+
    Mein Ausdruck bis jetzt sieht folgendermaßen aus:
    ([a-zA-Z]+\++)
    Dieser kommt natürlich mit der Stelle ?+ nicht klar.
    Dafür funzt dann
    ([a-zA-Z]+\?\+)
    ABER!
    Ich will die beiden jetzt mit einem ODER Verknüpfen, also eigentlich ja so:
    (([a-zA-Z]+\++)|([a-zA-Z]+\?\+))
    Das funktioniert aber nicht, ich versteh aber nicht wieso!
    | ist doch der ODER Operator, oder?

    Kann mir bitte jemand helfen?
    Danke!
    sigpic


  • #2
    ||
    ist der Operator
    http://www.dhsmedia.de
    http://www.deutsch-im-blick.de

    Kommentar


    • #3
      || funktioniert leider nicht, das habe ich schon probiert
      sigpic

      Kommentar


      • #4
        | ist der Operator für das logische ODER in einem regulären Ausdruck, ja.

        Das funktioniert aber nicht,
        heißt was?
        http://hallophp.de

        Kommentar


        • #5
          Das ist auch Unsinn, | ist hier schon richtig.

          Aber dein Ausdruck ist irgendwie umständlich. Warum machst du das ODER nicht an der entscheidenden Stelle, etwa so:
          [a-zA-Z]+(\+{1,2}|\?\+)

          Wie sieht eigentlich dein preg_split Aufruf aus?
          @fschmengler - @fschmengler - @schmengler
          PHP Blog - Magento Entwicklung - CSS Ribbon Generator

          Kommentar


          • #6
            http://regex.kl-s.de/index.php
            Hier prüfe ich meine regulären Ausdrücke.

            Bei Ausdruck habe ich jetzt also geschrieben:
            (([a-zA-Z]+\++)|([a-zA-Z]+\?\+))
            Bei Testdaten:
            heute+ist+dienstag++aber+am+besten?+wäre+freitag

            Es liefert ein falsches Ergebnis, obwohl die Suchbegriffe einzeln ohne | das richtige Ergebnis liefern.
            Und ich versteh nicht warum
            sigpic

            Kommentar


            • #7
              Also wenn du den String an den genannten Stellen teilen willst, würde sich dieser Ausdruck anbieten.
              Code:
              /(\+|\?)?\+/
              regex online tester - regular expressions
              http://hallophp.de

              Kommentar


              • #8
                Hey super, vielen Dank!
                sigpic

                Kommentar

                Lädt...
                X