我是学习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