我想用C#解析一段javascript。
javascript就像
var info1 = {timestamp: "1390678800000",amount: "123",guaranteed: "False"};
var info2 = {timestamp: "1390510500000",amount: "234",guaranteed: "True"};
var info3 = {timestamp: "1390678800000",amount: "123",guaranteed: "False"};
我想要的是一个可以从info2中提取金额的正则表达式。
我有这个正则表达式
(?<=(info2((\s|=)+){.+amount:\s?")).*(?=",.*)
但不是234而是返回
234",guaranteed: "True"};var info3 = {timestamp: "1390510500000",amount: "345
我该如何解决?
由于
答案 0 :(得分:1)
这是因为你在前瞻之前有一场贪婪的比赛。添加?
以确保.*
消耗尽可能少。我也逃过了{
。
(?<=(info2((\s|=)+)\{.+amount:\s?")).*?(?=",.*)
虽然你可能有RegexOptions.Singleline
因为它应该可以正常工作(除非你的所有info
都在实际代码中的同一行?)。
如果可能,我建议使用JSON解析器,而不是使用正则表达式。