Zahlen in String auslesen

  • Hallo Leute,

    versuche Zahlen (bzw. das Format) aus einem String auszulesen. Zahlen selber klappt ganz gut, jetzt hab ich aber auch Kombinationen mit nem Bindestrich dazwischen und hier komm ich nicht weiter - also das die Striche auch mit übernommen werden. Hat einer von euch ne Idee?

  • probier mal das hier

    AutoIt
    $pattern = "((?i)\d+[-*\d+]*\d+)" ;Beginn: Immer mit Zahl --- Dazwischen: Zahlen oder - --- Ende: Immer mit Zahl
  • Hi @ all
    muss das hier nochmal ausgraben weil ich es mit dem $pattern nicht wirklich gebacken kriegen.

    Habe 2 Strings aus denen nur die ZAHLen benötigt werden.


    abcZAHL0.txt -> Die Null vorm Punkt wird nicht benötigt.

    abcZAHLD.txt

    Gibt es da evtl. eine Möglichkeit?

  • Hi,
    ersetze in deinem Text zuerst "0.", "+.", "-." durch ".", damit eliminierst du die Nullen/Bindestriche/Pluszeichen vor dem Punkt.
    Danach lässt du das Pattern die übriggebliebenen Kombination Zahlen/Bindestriche/Pluszeichen matchen per pattern="(?i)(\d+[-\d+]*)"
    Generell ist es sinnvoll, statt irgendwelcher Wünsche/Erklärungen einfach mal 20 BEISPIELE zu posten, incl. der daraus erwarteten Ergebnisse.

  • Generell ist es sinnvoll, statt irgendwelcher Wünsche/Erklärungen einfach mal 20 BEISPIELE zu posten, incl. der daraus erwarteten Ergebnisse.


    Nun, Du meinst 20 Beispiele reichen? ;)

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Naja, es geht um Dateinamen, da bekommt man per "dir *.txt > test.dat" ein komplettes Verzeichnis in eine Textdatei.
    Davon die relevanten aussuchen und hintendran das gewünschte Ergebnis schreiben.
    Dann gibt es nur noch EINE Antwort, und zwar funktionierende RegEx bzw. Script(e), welche aus allen Dateinamen die gewünschten Ergebnisse ausfiltern!
    Das Leben kann so einfach sein....

  • Das Leben kann so einfach sein....

    Da fällt mir nur dieses hier ein: Brain ab 1:26:15 einfach einmal mit singen !!!

    Aber einen kleinen Lösungsansatz habe ich hier für Dich:

    AutoIt
    #include <Array.au3>
    $text = StringReplace("Aus den drei Zahlen 47, 11 und 60 kann man ganz schnell Parfüm und Schweinerei machen. Aber nur, wenn man nicht NULL AHNUNG hat.", "0", "") ; entfernt die 0
    $a = StringRegExp($text, "(?i)(\d+[-\d+]*)", 3); Zahlen werden herausgezogen
    _ArrayDisplay($a) ; Array-Ausgabe
    MsgBox(0,"", "Parfüm aus Deutschland ist: " & $a[0] & $a[1] & " und wieso " & $a[2] & " eine Schweinerei ist, darüber darfst DU grübeln") ; Bsp. für eine MsgBox-Ausgabe.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

    2 Mal editiert, zuletzt von Alina (9. Februar 2016 um 17:20)

  • Danke an euch beide für Eure Antworten!

    Ich Dutz habe die For Next Schleife vergessen :S darum ging es nicht :D

    Die ZAHL ändert sich auch wöchentlich, so das öfters auch dort mal eine 0 enthalten sein kann - darum denke ich die Nullen zu Replacen ist keine Gute Idee. Nur das abc und (je nach Version) das 0.txt oder D.txt bleibt gleich.

    EDIT:
    Das StringReplace ist gar nicht so schlecht...

    StringReplace(StringReplace($level, $type & ".txt", ""), "abc", "")

    Muss dann nur vorher die Version abfragen und als $type deklarieren.

    Einmal editiert, zuletzt von dieselwiesel (9. Februar 2016 um 21:45)


  • Nur das abc und (je nach Version) das 0.txt oder D.txt bleibt gleich.

    dann funktioniert u.a. dies dafür:

  • dieselwiesel:
    Das war auch so gedacht, das Du das was Du tauschen möchtest oder durch "nichts" ersetzen möchtest selber bestimmst und damit etwas "rum spielst". Kleine Jungs spiele doch gerne ab und an mal, oder? ;)

    Wo bleiben die erbetenen 20 Beispiele eigentlich? :Glaskugel:

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl