我正在尝试使用System.Text.RegularExpressions.Regex
类从JSON字符串中获取一些文本。刺痛就像是
[{"name":"joe","message":"hello","sent":"datetime"}{"name":"steve","message":"bye","sent":"datetime"}]
我正在尝试使用Matches()方法来获取“消息”值。但是,将匹配指定为类似message":"*","sent
的模式将返回3个匹配项:
hello
bye
hello","sent":"datetime"}{"name":"steve","message":"bye
如何构造选项或修改模式以排除递归正则表达式检查?我只想要比赛
hello
bye
答案 0 :(得分:1)
例如,您可以尝试使用非贪婪语法.*?
。
答案 1 :(得分:1)
JavaScriptSerializer类(命名空间System.Web.Script.Serialization,程序集System.Web.Extensions.dll)对于处理这样的JSON字符串非常有用。
var json = "[{\"name\":\"joe\",\"message\":\"hello\",\"sent\":\"datetime\"},{\"name\":\"steve\",\"message\":\"bye\",\"sent\":\"datetime\"}]";
var serializer = new JavaScriptSerializer();
var result = serializer.Deserialize<object[]>(json);
// now have an array of objects, each of which happens to be an IDictionary<string, object>
foreach(IDictionary<string, object> map in result)
{
var messageValue = map["message"].ToString();
Console.WriteLine("message = {0}", messageValue);
}