Aufgabe für die Regexer ;)

  • Halli hallo,

    bevor ich mich stundenlang abquäle, schafft es bestimmt ein Profi-Regexer in nullkommanix.
    Also gegeben ist:

    Code
    normal 0.0000 0.0000 1.0000
          outer loop
             vertex 11.2500 9.7000 -149.1000
             vertex 8.6298 9.7000 -149.1000
             vertex 9.6735 9.8374 -149.1000
          endloop


    Ich bräuchte dann in ein 2D-Array der Koordinaten die hinter vertex stehen.
    Vielleicht kann mir da jemand behilflich sein bzw. mir einen Tipp geben.

    Einmal editiert, zuletzt von m-obi (24. Februar 2013 um 23:50)

  • hehe, ok gelöst. Man kann es ja garnicht als 2D-Array bekommen. Hab es jetzt mit "vertex (.*)" gelöst und mach den Rest mit StringSplit.

    • Offizieller Beitrag

    Auch wenn Du es schon gelöst hast, ich würde folgende Variante benutzen:

    [autoit]


    #include <Array.au3>
    $sText = FileRead(@ScriptDir & '\test.txt')
    $array = StringRegExp($sText, 'vertex (\H+) (\H+) (\H+)', 3)
    _ArrayDisplay($array)

    [/autoit]


    Dann hast Du gleich alle Einträge getrennt im Array und benötigst nicht extra noch ein StringSplit.

  • Und falls du eh die Dinger schrittweise durchgehen willst kannst du es auch so machen:

    [autoit]

    #include <Array.au3>
    $s_String = FileRead(@ScriptDir & '\test.txt')

    [/autoit][autoit][/autoit][autoit]

    For $i in StringRegExp($s_String, 'vertex (\H+) (\H+) (\H+)', 4)
    _ArrayDisplay($i)
    Next

    [/autoit]