我有这个字符串:
{"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
我试图弄乱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完全陌生。
我使用的是使用PCRE RegExp-Engine的AutoIT(这就是想法)。
答案 0 :(得分:1)
您可以使用以下正则表达式:
"\s*:\s*(?:"\K[^"]*|\K[^][\s,{}]+)
请参阅regex demo
<强>详情:
"\s*:\s*
- 文字"
,0 +空格,:
,0 +空格(?:"\K[^"]*|\K[^][\s,{}]+)
- 匹配2个备选方案的非捕获组:
"\K[^"]*
- "
,然后\K
将目前为止匹配的文字归零,然后将"
以外的0 +字符与[^"]*
匹配\K[^][\s,{}]+
- \K
删除了目前为止匹配的文字,[^][\s,{}]+
匹配除]
,[
以外的1个字符,空白,{{1 },,
和{
。