2016-11-16 2 views
1

У меня есть эта строка:StringRegExp модель не работает должным образом

{"name": "Fancy HaXXor123Name","profession": 1,"race": 2,"map_id": 1052,"world_id": 268435461,"team_color_id": 0,"commander": false,"fov": 0.768} 

Я хочу, чтобы получить массив обратно, который включает в себя следующую информацию (слева направо от строки):

Fancy HaXXor123Name 
1 
2 
1052 
268435461 
0 
false 
0.768 

I пытался возиться с RegexBuddy и получил перспективно образец, который выглядит, как этот

(\d{1,}).(\d{1,})|(\d{1,})|(?i)"(.*?)" 

это то, что я вернулся

name 



Fancy HaXXor123Name 



profession 


1 



race 


2 



map_id 
10 
2 



world_id 
2684354 
1 



team_color_id 


0 



commander 



fov 
0 
768 

Таким образом, между информацией не существует больших пробелов, а количество разрывов и ложное отсутствует. Я не могу исправить эту проблему, и я совершенно не знаком с StringRegExp.

Я использую AutoIT, который использует PCRE RegExp-Engine (вот что думает).

+0

Это похоже на JSON, кстати. – melpomene

ответ

1

Вы можете использовать регулярные выражения вроде следующего:

"\s*:\s*(?:"\K[^"]*|\K[^][\s,{}]+) 

regex demo См

Детали:

  • "\s*:\s* - Буквальный ", 0+ пробельные, :, 0 + пробелы
  • (?:"\K[^"]*|\K[^][\s,{}]+) - Не-захват группа соответствия 2 варианта:
    • "\K[^"]* - в ", затем \K нулей текст совпадающих до сих пор, а затем матчи 0+, кроме " символов с [^"]*
    • \K[^][\s,{}]+ - \K роняет текст, сопоставленный до сих пор, и [^][\s,{}]+ соответствует символам 1+, отличным от ], [, пробелы, ,, { и }.
Смежные вопросы