使用正则表达式拆分文本

时间:2013-10-10 16:31:24

标签: c# regex string

我尝试将文本剪切并放入字典中,问题是我的文字没有清晰的结构: 文字:

{
   "about": "where I'm meant to be...",
   "bio": "Visit my official blog at:\n\nhttp://ABC.com/  \n\nAdd me on Twitter:\n\nhttp://www.ABC.com/ABC",
   "category": "Public figure",
   "is_published": true,
   "location": {
      "street": "",
      "city": "Los Angeles",
      "state": "CA",
      "country": "United States",
      "zip": ""
   },
   "talking_about_count": 254637,
   "username": "ABC",
   "website": "http://kimkardashian.celebuzz.com/\nhttp://www.twitter.com/kimkardashian\n",
   "were_here_count": 0,
   "id": "114696805612",
   "name": "ABC",
   "link": "http://www.ABC.com/ABC",
   "likes": 0,
   "cover": {
      "cover_id": "000000000",
      "source": "http://ABC.jpg",
      "offset_y": 0,
      "offset_x": 200
   }
}

如你所见,我有","作为分隔符,问题是有一些组合对象,如:

"location": {
      "street": "",
      "city": "Los Angeles",
      "state": "CA",
      "country": "United States",
      "zip": ""
   },

这就是我无法使用string.Split(' ');的原因 我听说过正则表达式,但我不知道如何使用它们 是否有任何解决方案可以将这些信息分成字典或任何其他结构

2 个答案:

答案 0 :(得分:1)

您的数据采用标准格式(JSON),并且已经为其编写了解析器。您可以在Visual Studio中通过NuGet轻松下载Json.NET。

正则表达式是一种功能强大的工具,可以使模式匹配更加简单。就我而言,就他而言。他们可以用于创建解析器和各种其他东西,但它很复杂。

所以你可以使用正则表达式创建自己的JSON解析器,但它需要花费很多时间。当有钥匙可用时,就像建立一个锁具一样。

答案 1 :(得分:0)

JavaScriptSerializer可满足您的需求

using System.Web.Script.Serialization;
var jss = new JavaScriptSerializer();
var dict = jss.Deserialize<Dictionary<string,string>>(jsonText);
Console.WriteLine(dict["some_number"]);

请参阅:http://msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer.aspx