Arrays StringRegExp模式工作不正常

Arrays StringRegExp模式工作不正常,arrays,string,autoit,pcre,Arrays,String,Autoit,Pcre,我有这个字符串: {"name": "Fancy HaXXor123Name","profession": 1,"race": 2,"map_id": 1052,"world_id": 268435461,"team_color_id": 0,"commander": false,"fov": 0.768} 我想返回一个数组,其中包含以下信息(从字符串的左到右): 我试图搞乱RegExBuddy,得到了一个类似这样的承诺模式 (\d{1,}).(\d{1,})|(\d{1,})|(?i)"(.

我有这个字符串:

{"name": "Fancy HaXXor123Name","profession": 1,"race": 2,"map_id": 1052,"world_id": 268435461,"team_color_id": 0,"commander": false,"fov": 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完全陌生


我使用的是AutoIT,它使用PCRE RegExp引擎(我就是这么想的)。

您可以使用如下所示的正则表达式:

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

详细信息

  • “\s*:\s*
    -一个文本
    ,0+空格,
    ,0+空格
  • (?:“\K[^”]*|\K[^][\s,{}]+)
    -一个非捕获组匹配两个备选方案:
    • “\K[^”]*
      -a
      ,然后
      \K
      将迄今为止匹配的文本归零,然后将
      以外的0+字符与
      [^”]*
      匹配
    • \K[^][\s,{}]+
      -
      \K
      删除到目前为止匹配的文本,
      [^][\s,{}]+
      匹配1+个字符,而不是
      ]
      [
      、空格、
      {

这看起来像是JSON,顺便说一句。
"\s*:\s*(?:"\K[^"]*|\K[^][\s,{}]+)