首页 新闻 搜索 专区 学院

C#用正则表达式取值,求帮助

0
悬赏园豆:20 [已解决问题] 解决于 2015-11-07 15:05
{
"item": [
{
"media_id": "gmfnBxUDOD6IJkMyAduqokoDHxmAk5uXENr5AMNdHok",
"content": {
"news_item": [
{
"title": "测试图文一",
"author": "",
"digest": "如下原因会造成JSON校验失败,而且会让你不知道为什么失败JSON字符串里的非数字型键值没有双引号JSON中",
"content": "<p style=\"\">如下原因会造成JSON校验失败,而且会让你不知道为什么失败</p><ol style=\"\" class=\" list-paddingleft-2\"><li><p>JSON字符串里的非数字型键值没有双引号</p></li><li><p>JSON中存在\\t这样的制表符,看起来和空格一样,但是就是因为它的存在校验不通过。去掉就能过了。</p></li><li><p>编辑器有bom头也会造成</p></li><li><p>有这时间看这条,不如他么的进群和一千多个基友讨论",
"content_source_url": "",
"thumb_media_id": "gmfnBxUDOD6IJkMyAduqohvumT1_FFFs9uDdFWaKPYo",
"show_cover_pic": 1,
"url": "http://xxxxxxxxxxxxxxxxxxxx.com"
}
]
},
"update_time": 1436426485
},
{
"media_id": "nKkm8gAtMAE5etgqmvZb_aEWjXqf0j2cu9h9ZchtKjU",
"content": {
"news_item": [
{
"title": "as发大水介绍",
"author": "",
"digest": "Он иОна(俄文译名)他她蜜 高加索黑蜂 阿尔泰蜂蜜一大自然的恩赐!北京亿众亿千商贸有限公司意为"集千万",
"content": 老。外用美肤。</span></p><p><span style=\"font-family:宋体\">禁忌:开水冲服</span> <span style=\"font-family:宋体\">一周岁婴幼儿禁服</span> <span style=\"font-family:宋体\">空腹忌服</span></p><p><br /></p>",
"content_source_url": "",
"thumb_media_id": "nKkm8gAtMAE5etgqmvZb_dxtaxQHSrh2grzPxZfMSrw",
"show_cover_pic": 1,
"url": "hddddddddddd#rd"
}
]
},
"update_time": 1436340220
}
],
"total_count": 2,
"item_count": 2
}

如上的文字,请问如何用正则表达式抓去这断json数据里的Url值和title对应的值,求正则表达式破解,我要的结果是每一个title对应一个url,还有total_count值
罗拉可乐的主页 罗拉可乐 | 初学一级 | 园豆:-1
提问于:2015-07-09 16:14
< >
分享
最佳答案
0

1.先把你的json数据格式化, 去空格 去回车

2.

string pattern = "\"title\":\"(.*?)\"";
string pattern2 = "\"url\":\"(.*?)\"";
string data =
                "{\"item\":[{\"media_id\":\"gmfnBxUDOD6IJkMyAduqokoDHxmAk5uXENr5AMNdHok\",\"content\":{\"news_item\":[{\"title\":\"测试图文一\",\"author\":\"\",\"digest\":\"如下原因会造成JSON校验失败,而且会让你不知道为什么失败JSON字符串里的非数字型键值没有双引号JSON中\",\"content\":\"<p style=\"\">如下原因会造成JSON校验失败,而且会让你不知道为什么失败</p><ol style=\"\" class=\" list-paddingleft-2\"><li><p>JSON字符串里的非数字型键值没有双引号</p></li><li><p>JSON中存在\\t这样的制表符,看起来和空格一样,但是就是因为它的存在校验不通过。去掉就能过了。</p></li><li><p>编辑器有bom头也会造成</p></li><li><p>有这时间看这条,不如他么的进群和一千多个基友讨论\",\"content_source_url\":\"\",\"thumb_media_id\":\"gmfnBxUDOD6IJkMyAduqohvumT1_FFFs9uDdFWaKPYo\",\"show_cover_pic\":1,\"url\":\"http://xxxxxxxxxxxxxxxxxxxx.com\"}]},\"update_time\":1436426485},{\"media_id\":\"nKkm8gAtMAE5etgqmvZb_aEWjXqf0j2cu9h9ZchtKjU\",\"content\":{\"news_item\":[{\"title\":\"as发大水介绍\",\"author\":\"\",\"digest\":\"Он иОна(俄文译名)他她蜜 高加索黑蜂 阿尔泰蜂蜜一大自然的恩赐!北京亿众亿千商贸有限公司意为"集千万\",\"content\":\"老。外用美肤。</span></p><p><spanstyle=\"font-family: 宋体\">禁忌:开水冲服</span><spanstyle=\"font-family: 宋体\">一周岁婴幼儿禁服</span><spanstyle=\"font-family: 宋体\">空腹忌服</span></p><p><br/></p>\",\"content_source_url\":\"\",\"thumb_media_id\":\"nKkm8gAtMAE5etgqmvZb_dxtaxQHSrh2grzPxZfMSrw\",\"show_cover_pic\":1,\"url\":\"hddddddddddd#rd\"}]},\"update_time\":1436340220}],\"total_count\":2,\"item_count\":2}";

var match = Regex.Matches(data, pattern);
var match2 = Regex.Matches(data, pattern2);

foreach (Match v in match)
{
    Console.WriteLine(v.Groups[1].Value);
    Console.WriteLine("");
}
foreach (Match v in match2)
{
     Console.WriteLine(v.Groups[1].Value);
     Console.WriteLine("");
}

由于json数据格式真的不好找开始结束标识,所以把 title和url分开来匹配

3.还是推荐用反序列化,json不用序列化 那是有多蛋疼

收获园豆:20
jio92 | 小虾三级 |园豆:1064 | 2015-07-09 17:11
其他回答(1)
0

什么语言啊,还是推荐使用json反序列化工具.序列化成对像,想怎么操作怎么操作.

自己写个正则匹配json格式.很复杂..复杂到我不敢想.

吴瑞祥 | 园豆:28979 (高人七级) | 2015-07-09 16:48

吴老师,您有时间吗?如果可以的话请帮忙看下我的问题呗?

JS replace 正则:求大神进来看一看,弄了一下午了没弄出来 

支持(0) 反对(0) GEEKc | 园豆:39 (初学一级) | 2015-07-09 16:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册