飞镖 - 将"a:3{i:0;i:105;...}"字符串转换为飞镖列表



有什么想法可以把这个字符串变成一个飞镖列表吗?

"a: 12{i:0;i:108;i:1;i:109;i:2;i:6;i:3;i:4;i:103;i:5;i:121;i:60;i:143;i:7;i:127;i:8;i+140;i:9;i126;i:10;i149;i:11;i:162;};

如果没有上下文,我们无法猜测字符串内容的含义。

根据您的评论,我猜这是对长度为12(a:12{...}(的数组的某种奇怪编码,其中元素表示为整数索引(i:0(和整数值(i:108(对。

如果是这种情况,并且所有内容都可以,那么:

var _pairRE = RegExp(r"i:d+;i:(d+)");
var input = "a:12{i:0;i:108;i:1;i:109;i:2;i:6;i:3;i:3;i:4;i:103;i:5;i:121;i:6;i:143;i:7;i:127;i:8;i:140;i:9;i:126;i:10;i:149;i:11;i:162;}";
var output = _pairRE.allMatches(input).map((m) => int.parse(m[1]!)).toList();

事实上,这看起来像是一种复杂的格式,可以包含嵌套的字符串或数组,而不是整数(否则类型前缀是不必要的(,因此您可能需要为该格式找到一个合适的解析器。

相关内容

最新更新