Что нового

Как извлечь данные из строки в массив

Luke

Знающий
Сообщения
64
Репутация
14
Как из такой строки:

{"total":1048867,"nodes":{"c2.tankionline.com":{"load":"50","online":2069,"inbattles":849},"c4.tankionline.com":{"load":"50","online":647,"inbattles":267},"i1.tankionline.com":{"load":"50","online":0,"inbattles":0},"c5.tankionline.com":{"load":"50","online":459,"inbattles":250},"c8.tankionline.com":{"load":"50","online":136,"inbattles":59},"c1.tankionline.com":{"load":"50","online":2289,"inbattles":925},"c7.tankionline.com":{"load":"50","online":142,"inbattles":45},"c6.tankionline.com":{"load":"50","online":313,"inbattles":112},"c3.tankionline.com":{"load":"50","online":1162,"inbattles":589}}}

получить массив вида:
c1 , 2289 , 925
c2 , 2069 , 849
...
i1 , 0 , 0
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
Luke
У меня так работает:
Код:
#include <Array.au3>

$aText = StringSplit(StringTrimRight(StringRegExpReplace(FileRead('test.txt'), '(?s).*?(c\d{1,}|i\d{1,}).*?e":(\d{1,}).*?s":(\d{1,})}+.*?', '\1, \2, \3|'), 1), '|', 2)
_ArraySort($aText)
_ArrayDisplay($aText)

В файле test.txt - Ваш текст.
 
Автор
L

Luke

Знающий
Сообщения
64
Репутация
14
Огромное спасибо, работает отлично. Осталось понять как это работает, и как только создают такие регулярные выражения.
 
Верх