- Offizieller Beitrag
Ich brauche mal eure Hilfe bei einem RegExp-Problem. Und zwar möchte ich eine Gruppe in dem Pattern wiederholen, aber ich weiß nicht, wie ich das hinkriege.
Hier mal das Beispielscript (auskommentiert, wie es gehen würde, aber das muss doch auch einfacher möglich sein):
Spoiler anzeigen
#include <Array.au3>
$sInput = 'aaa|41|63|43|70|58|52|||||||||||||||3|0|327|54.500|1|7.50|7.50|aaa' & @CRLF
$sInput &= 'bbb|||||||||||||||||||||2|0|327|54.500|1|7.50|7.50|aaa' & @CRLF
$sInput &= 'ccc|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|1|0|327|54.500|1|7.50|7.50|aaa' & @CRLF
; das gibt mir nur den ersten Wert aus. Ich brauche aber zusätzlich die ersten 20 Werte nach den Buchstaben
$aOut = StringRegExp($sInput, '(\w+)\|(\d*?)\|.+?\R', 3)
; das folgende würde vom Ergebnis passen, aber geht das nicht einfacher?
;~ $aOut = StringRegExp($sInput, '(\w+)\|(\d*?)\|(\d*?)\|(\d*?)\|(\d*?)\|(\d*?)\|(\d*?)\|(\d*?)\|(\d*?)\|(\d*?)\|(\d*?)\|(\d*?)\|(\d*?)\|(\d*?)\|(\d*?)\|(\d*?)\|(\d*?)\|(\d*?)\|(\d*?)\|(\d*?)\|(\d*?)\|.+?\R', 3)
_ArrayDisplay($aOut)
[/autoit]