如何搜索特定子字符串的字符串并获取与该子字符串关联的数字?

时间:2016-08-08 13:30:25

标签: c# .net regex split

我是学习C#的新手,这是手头的任务:我有一个带有一些JSON的文本文件。在文本文件中有多行,每个段落通过空行与下一行分开。

我想得到与子字符串相关的数字"标签" +号码。见下文。

这是来自文本文件的输入示例:

  

{" menu":{" header":" menu"," items":[{" id&#34 ;:27},{" id":0,"标签":"标签0"},null,{" id":93 },{" id":85},{" id":54},null,{" id":46,"标签" :"标签46"}]}}

     

{" menu":{" header":" menu"," items":[{" id&#34 ;:81}]}}

     

{" menu":{" header":" menu"," items":[{" id&#34 ;:70,"标签":"标签70"},   {" id":85,"标签":"标签85"},{" id":93,"标签&# 34;:"标签93"},   {" id":2}]}}

到目前为止,我所做的是:

        static void Main(string[] args)
    {

        string path = @"C:\Users\X\Desktop\docomentul.txt";
        string jSONstring;

        string resultString;
        string labelString = "Label ";


        using (StreamReader reader = File.OpenText(path))
        {
            jSONstring = reader.ReadToEnd();

            var jSONlines = Regex.Split(jSONstring,"(?m)^\\s*$");


            foreach (var line in jSONlines)
            {
                resultString = Regex.Match(line, @"\d+").Value;
                Console.WriteLine(resultString);
            }
        }

        Console.ReadKey();
    }

现在这只会带回字符串中第一次出现的数字。我想要的是找到与子串相关联的每个数字"标签"。至少这就是我计划解决这个问题的方法。但是,我真的不知道如何使用REGEX,也不知道如何以另一种方式找到它。

一旦我得到与子字符串" Label"相关联的数字,我将不得不为每个项目添加它们,然后打印出数组(或段落)中每个字符串的总和。

测试输入的输出应为:
46个
0
248

0 个答案:

没有答案