假设我有这个字符串:
var results =
[{\r\n \"ninja\": \"Leonardo - $0.99\",\r\n \"data\": [[1336485655241,0.99],[1336566333236,0.99],[1336679536073,0.99],[1336706394834,0.99],[1336774593068,0.99],[1366284992043,0.99]]},
\r\n{\r\n \"ninja\": \"Donatello - $0.25\",\r\n \"data\": [[1361061084420,0.23],[1366102471587,0.25],[1366226367262,0.25],[1366284992043,0.25]]},
\r\n{\r\n \"ninja\": \"Raphael - $0.15\",\r\n \"data\": [[1327305600000,0.15], [1365583220422,0.15],[1365669396241,0.15],[1365669396241,0.15],[1365753433493,0.15],[1366284992043,0.15]]},\r\n\
r\n{\r\n \"ninja\": \"Michelangelo - $0.14\",\r\n \"data\": [1366284992043,0.14]]};
我想建立一个字典来存储忍者的名字和他们的价格,这样我就有:
核心价值
莱昂纳多 \ 0.99
多纳泰罗 \ 0.25
拉斐尔 \ 0.15
米开朗基罗 \ 0.14
所以几天以来我一直在阅读很多关于正则表达式的文章,但我还不知道它是如何工作的。到目前为止,我有这行代码:
var dictNinjas = Regex.Matches(priceListValue, @"\*(\w+)=(a-zA-Z)|\*(\$(0-9))").Cast<Match>()
.ToDictionary(x => x.Groups[0].Value,
x => x.Groups[1].Value);
我的理解是首先查找所有带有字母 a-zA-Z 的单词,然后查找位于 $ 符号之后的所有值。该| 符号是分组,所以第一个参数是组 0,第二个参数是组 1。但这不起作用。
谁能帮我吗?我正在努力理解如何使这项工作,谢谢。