求一正式表达式的写法

hb_bigsea 2009-05-25 11:07:16
求一正式表达式的写法例原 内容如下:



"CC":"421000","MM":"169"
"CC":"421001","MM":"179"
"CC":"421000","MM":"165"
"CC":"421000","MM":"161"
"CC":"421000","MM":"162"


要求:
依次分析出CC后面的值,

如:
("CC":"421000","MM":"169" 得到的值应为421000 )

如果正确得到了值为421000,那么如何一一到原内容中5个CC的值,并存入数组中,求高人解答
...全文
128 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
typeof 2009-05-25
  • 打赏
  • 举报
回复
using System;
using System.Collections.Generic;

class Program
{
static void Main()
{
string input = @"
""CC"":""421000"",""MM"":""169""
""CC"":""421001"",""MM"":""179""
""CC"":""421000"",""MM"":""165""
""CC"":""421000"",""MM"":""161""
""CC"":""421000"",""MM"":""162""
";

string[] output = GetCC(input); // 这就是你要的数组
foreach (string s in output)
{
Console.WriteLine(s);
}
}

static string[] GetCC(string s)
{
List<string> l = new List<string>();
foreach (string a in s.Trim().Split('\n'))
{
l.Add(a.Split(':')[1].Split(',')[0].Trim('"'));
}
return l.ToArray();
}
}
/* 程序输出:
421000
421001
421000
421000
421000
*/
typeof 2009-05-25
  • 打赏
  • 举报
回复
using System;
using System.Collections.Generic;

class Program
{
static void Main()
{
string input = @"""CC"":""421000"",""MM"":""169""
""CC"":""421001"",""MM"":""179""
""CC"":""421000"",""MM"":""165""
""CC"":""421000"",""MM"":""161""
""CC"":""421000"",""MM"":""162""";
string[] output = GetCC(input); // 这就是你要的数组
foreach (string s in output)
{
Console.WriteLine(s);
}
}

static string[] GetCC(string s)
{
List<string> l = new List<string>();
foreach (string a in s.Split('\n'))
{
l.Add(a.Split(':')[1].Split(',')[0].Trim('"'));
}
return l.ToArray();
}
}
/* 程序输出:
421000
421001
421000
421000
421000
*/
plglenn 2009-05-25
  • 打赏
  • 举报
回复
d
hb_bigsea 2009-05-25
  • 打赏
  • 举报
回复
分少了么?
hb_bigsea 2009-05-25
  • 打赏
  • 举报
回复
等待求解中...
hb_bigsea 2009-05-25
  • 打赏
  • 举报
回复
好强呀,正解,上分.楼上大哥牛
typeof 2009-05-25
  • 打赏
  • 举报
回复
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;

class Program
{
static void Main()
{
string input = @"
""CC"":""421000"",""MM"":""169""
""CC"":""421001"",""MM"":""179""
""CC"":""421000"",""MM"":""165""
""CC"":""421000"",""MM"":""161""
""CC"":""421000"",""MM"":""162""
";

string[] output = GetCC(input); // 这就是你要的数组
foreach (string s in output)
{
Console.WriteLine(s);
}
}

static string[] GetCC(string s)
{
List<string> l = new List<string>();
foreach (Match m in Regex.Matches(s, @"""CC"":""([^""]*)"""))
{
l.Add(m.Groups[1].ToString());
}
return l.ToArray();
}
}
/* 程序输出:
421000
421001
421000
421000
421000
*/
hb_bigsea 2009-05-25
  • 打赏
  • 举报
回复
楼上的方法灵活性不强呀,
我想把
l.Add(a.Split(':')[1].Split(',')[0].Trim('"'));
把这一句换成
l.Add(a.Split('CC')[1].Split(',')[0].Trim('"'));
就开始报错了,
最好用一正则来匹配,如 "CC":"*", 这是我自己想的,但是正则不对,不会玩正则.请人继续指教

111,119

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧