Reguläre Ausdrücke

    • Reguläre Ausdrücke

      Dieser Code findet den ersten Betrag, also die 7.00 € :

      Quellcode

      1. Declare test$
      2. test$ = "100 Zement 25 KG 7.00 € 5 ST. 35.00 €"
      3. Print Match$("[0-9]{1,3}(~.)[0-9]{2}", test$)
      4. Print "Position : "; %MatchPos, "Länge : "; %MatchLen
      5. waitkey
      6. End


      Wie könnte man es anstellen, daß auch der zweite Betrag 35.00 €
      gefunden wird ? Dieser kann auch variieren zwischen
      1 Stelle und 3 Stellen vor dem Punkt, also 1-3stellige
      Eurobeträge. Ich möchte den String ungerne ab Fundstelle
      + Betrag abschneiden, um nochmals zu suchen.
    • Habs inzwischen selber mit etwas Knoblerei gelöst :

      Quellcode

      1. Declare test$
      2. test$ = "100 Zement 25 KG 7.00 € 5 ST. 35.00 €"
      3. Print Match$("[0-9]{1,3}(~.)[0-9]{2}", test$)
      4. Print "Position : "; %MatchPos, "Länge : "; %MatchLen
      5. Print Match$("[0-9]{1,3}(~.)[0-9]{2}", Mid$(test$, (%MatchPos + %MatchLen), Len(test$)-(%MatchPos+%MatchLen)))
      6. Print "Position : "; %MatchPos, "Länge : "; %MatchLen
      7. waitkey
      8. End