C#-正则,常用几种数据解析-端午快乐

Posted 神牛003

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#-正则,常用几种数据解析-端午快乐相关的知识,希望对你有一定的参考价值。

在等待几个小时就是端午节了,这里预祝各位节日快乐。

这里分享的是几个在C#中常用的正则解析数据写法,其实就是Regex类,至于正则的匹配格式,请仔细阅读正则的api文档,此处不具体说明,谢谢。

开始吧:

1.查询是否存在“订单号”数据的字符串

1 //匹配对象
2             var expl = "[{\\"订单号\\":2006,\\"价格\\":888.90,\\"下单时间\\":\\"2016-06-08 17:01\\",\\"支付状态\\":\\"已支付\\",\\"支付时间\\":\\"2016-06-08 17:10\\"},{\\"订单号\\":2007,\\"价格\\":999.99,\\"下单时间\\":\\"2016-06-08 17:01\\",\\"支付状态\\":\\"已支付\\",\\"支付时间\\":\\"2016-06-08 17:10\\"},{\\"订单号\\":2008,\\"价格\\":999,\\"下单时间\\":\\"2016-06-08 17:01\\",\\"支付状态\\":\\"未支付\\",\\"支付时间\\":\\"\\"}]";
3 
4             //1.查询是否存在“订单号”数据的字符串
5             var isExists = Regex.IsMatch(expl, @"价格");
6             Console.WriteLine("1.查询是否存在“订单号”数据的字符串");
7             Console.WriteLine(isExists);
View Code

心得:IsMatch方法判断是否存在匹配的项,直接往方法里面填写需要搜索的信息就行。

2.查询一个“价格”(不包含小数部分)

1 //2.查询一个“价格”(不包含小数部分)
2             var m02 = Regex.Match(expl, "\\"价格\\":\\\\d+");
3             Console.WriteLine("\\n2.查询一个“价格”(不包含小数部分)");
4             Console.WriteLine(m02.Value);
View Code

  心得:Match直接获取匹配项的值

  3.查询一个订单“价格”(包含价格的小数部分)

1 //3.查询一个订单“价格”(包含价格的小数部分)
2             var m03 = Regex.Match(expl, "\\"价格\\":[^,]+");
3             Console.WriteLine("\\n3.查询一个订单“价格”(包含价格的小数部分)");
4             Console.WriteLine(m03.Value);
View Code

  心得:使用正则的^匹配数据

  4.查询全部订单“价格”

1 //4.查询全部订单“价格”
2             MatchCollection m04 = Regex.Matches(expl, "\\"价格\\":[^,]+");
3             Console.WriteLine("\\n4.查询全部订单“价格”");
4             foreach (Match m004 in m04)
5             {
6                 Console.WriteLine(m004.Value);
7             }
View Code

  心得:Matches获取到匹配的集合组

  5.查询全部订单“价格”,输出价格信息

1  //5.查询全部订单“价格”,输出价格信息
2             MatchCollection m05 = Regex.Matches(expl, "\\"价格\\":(?<price>[^,]+)");
3             Console.WriteLine("\\n5.查询全部订单“价格”,输出价格信息");
4             foreach (Match m005 in m05)
5             {
6                 Console.WriteLine(m005.Groups["price"].Value);
7             }
View Code

  心得:使用正则(?<price>xxxx)格式获取匹配组中的某一个项的值

  6.查询全部订单信息,输出信息

 1  //6.查询全部订单信息,输出信息
 2             MatchCollection m06 = Regex.Matches(expl, "\\"订单号\\":(?<orderid>[^,]+),\\"价格\\":(?<price>[^,]+),\\"下单时间\\":\\"(?<createtime>[^,]+)\\",\\"支付状态\\":\\"(?<paystatus>[^,]+)\\"");
 3             Console.WriteLine("\\n6.查询全部订单信息,输出信息");
 4             foreach (Match m006 in m06)
 5             {
 6 
 7 
 8                 Console.WriteLine(@"{0}:{1},{2}:{3},{4}:{5},{6}:{7}",
 9                  m006.Groups["orderid"], m006.Groups["orderid"].Value,
10                  m006.Groups["price"], m006.Groups["price"].Value,
11                  m006.Groups["createtime"], m006.Groups["createtime"].Value,
12                  m006.Groups["paystatus"], m006.Groups["paystatus"].Value);
13             }
View Code

  心得:获取匹配组中的多个项的值

  7.查询“未支付”订单信息

 1 //7.查询“未支付”订单信息
 2             MatchCollection m07 = Regex.Matches(expl, "\\"订单号\\":(?<orderid>[^,]+),\\"价格\\":(?<price>[^,]+),\\"下单时间\\":\\"(?<createtime>[^,]+)\\",\\"支付状态\\":\\"(?<paystatus>未支付)\\"");
 3             Console.WriteLine("\\n7.查询“未支付”订单信息");
 4             foreach (Match m007 in m07)
 5             {
 6 
 7 
 8                 Console.WriteLine(@"{0}:{1},{2}:{3},{4}:{5},{6}:{7}",
 9                  m007.Groups["orderid"], m007.Groups["orderid"].Value,
10                  m007.Groups["price"], m007.Groups["price"].Value,
11                  m007.Groups["createtime"], m007.Groups["createtime"].Value,
12                  m007.Groups["paystatus"], m007.Groups["paystatus"].Value);
13             }
View Code

  心得:匹配不同条件的集合组

  8.大小写匹配结果

1 //8.大小写匹配结果
2             var m08 = Regex.IsMatch("I love ZuGuo", "ZUGUO");
3             Console.WriteLine("\\n8.大小写匹配结果");
4             Console.WriteLine(m08);
View Code

  心得:Regex默认匹配区分大小写

  9.忽略大小写

1 //9.忽略大小写
2             var m09 = Regex.IsMatch("I love ZuGuo", "ZUGUO",RegexOptions.IgnoreCase);
3             Console.WriteLine("\\n9.忽略大小写");
4             Console.WriteLine(m09);
View Code

  心得:使用RegexOptions项忽略大小写

  10.匹配有空格的字符串信息

1  //10.匹配有空格的字符串信息
2             var m10 = Regex.Match("端 午 快 乐", "[^A]+");
3             Console.WriteLine("\\n10.匹配有空格的字符串信息");
4             Console.WriteLine(m10.Value);
View Code

  心得:正则的确很强大哈哈

  代码:

 1 //C#-正则,常用几种数据解析-端午快乐
 2 
 3             //匹配对象
 4             var expl = "[{\\"订单号\\":2006,\\"价格\\":888.90,\\"下单时间\\":\\"2016-06-08 17:01\\",\\"支付状态\\":\\"已支付\\",\\"支付时间\\":\\"2016-06-08 17:10\\"},{\\"订单号\\":2007,\\"价格\\":999.99,\\"下单时间\\":\\"2016-06-08 17:01\\",\\"支付状态\\":\\"已支付\\",\\"支付时间\\":\\"2016-06-08 17:10\\"},{\\"订单号\\":2008,\\"价格\\":999,\\"下单时间\\":\\"2016-06-08 17:01\\",\\"支付状态\\":\\"未支付\\",\\"支付时间\\":\\"\\"}]";
 5 
 6             //1.查询是否存在“订单号”数据的字符串
 7             var isExists = Regex.IsMatch(expl, @"价格");
 8             Console.WriteLine("1.查询是否存在“订单号”数据的字符串");
 9             Console.WriteLine(isExists);
10 
11             //2.查询一个“价格”(不包含小数部分)
12             var m02 = Regex.Match(expl, "\\"价格\\":\\\\d+");
13             Console.WriteLine("\\n2.查询一个“价格”(不包含小数部分)");
14             Console.WriteLine(m02.Value);
15 
16             //3.查询一个订单“价格”(包含价格的小数部分)
17             var m03 = Regex.Match(expl, "\\"价格\\":[^,]+");
18             Console.WriteLine("\\n3.查询一个订单“价格”(包含价格的小数部分)");
19             Console.WriteLine(m03.Value);
20 
21             //4.查询全部订单“价格”
22             MatchCollection m04 = Regex.Matches(expl, "\\"价格\\":[^,]+");
23             Console.WriteLine("\\n4.查询全部订单“价格”");
24             foreach (Match m004 in m04)
25             {
26                 Console.WriteLine(m004.Value);
27             }
28 
29             //5.查询全部订单“价格”,输出价格信息
30             MatchCollection m05 = Regex.Matches(expl, "\\"价格\\":(?<price>[^,]+)");
31             Console.WriteLine("\\n5.查询全部订单“价格”,输出价格信息");
32             foreach (Match m005 in m05)
33             {
34                 Console.WriteLine(m005.Groups["price"].Value);
35             }
36 
37             //6.查询全部订单信息,输出信息
38             MatchCollection m06 = Regex.Matches(expl, "\\"订单号\\":(?<orderid>[^,]+),\\"价格\\":(?<price>[^,]+),\\"下单时间\\":\\"(?<createtime>[^,]+)\\",\\"支付状态\\":\\"(?<paystatus>[^,]+)\\"");
39             Console.WriteLine("\\n6.查询全部订单信息,输出信息");
40             foreach (Match m006 in m06)
41             {
42 
43 
44                 Console.WriteLine(@"{0}:{1},{2}:{3},{4}:{5},{6}:{7}",
45                  m006.Groups["orderid"], m006.Groups["orderid"].Value,
46                  m006.Groups["price"], m006.Groups["price"].Value,
47                  m006.Groups["createtime"], m006.Groups["createtime"].Value,
48                  m006.Groups["paystatus"], m006.Groups["paystatus"].Value);
49             }
50 
51             //7.查询“未支付”订单信息
52             MatchCollection m07 = Regex.Matches(expl, "\\"订单号\\":(?<orderid>[^,]+),\\"价格\\":(?<price>[^,]+),\\"下单时间\\":\\"(?<createtime>[^,]+)\\",\\"支付状态\\":\\"(?<paystatus>未支付)\\"");
53             Console.WriteLine("\\n7.查询“未支付”订单信息");
54             foreach (Match m007 in m07)
55             {
56 
57 
58                 Console.WriteLine(@"{0}:{1},{2}:{3},{4}:{5},{6}:{7}",
59                  m007.Groups["orderid"], m007.Groups["orderid"].Value,
60                  m007.Groups["price"], m007.Groups["price"].Value,
61                  m007.Groups["createtime"], m007.Groups["createtime"].Value,
62                  m007.Groups["paystatus"], m007.Groups["paystatus"].Value);
63             }
64 
65             //8.大小写匹配结果
66             var m08 = Regex.IsMatch("I love ZuGuo", "ZUGUO");
67             Console.WriteLine("\\n8.大小写匹配结果");
68             Console.WriteLine(m08);
69 
70             //9.忽略大小写
71             var m09 = Regex.IsMatch("I love ZuGuo", "ZUGUO",RegexOptions.IgnoreCase);
72             Console.WriteLine("\\n9.忽略大小写");
73             Console.WriteLine(m09);
74 
75             //10.匹配有空格的字符串信息
76             var m10 = Regex.Match("端 午 快 乐", "[^A]+");
77             Console.WriteLine("\\n10.匹配有空格的字符串信息");
78             Console.WriteLine(m10.Value);
79 
80             Console.ReadLine();
View Code

  此时此刻想法:端午3天放假,一个人在北京雾霾城市,的确无聊,还好有dota1,有兴趣朋友一起来吧,11(神牛步行3)

 

以上是关于C#-正则,常用几种数据解析-端午快乐的主要内容,如果未能解决你的问题,请参考以下文章

请允许我用24种编程语言,给各位码友们祝福端午节!

做了一个端午节日网页并上线,祝大家端午快乐

工作周记 - 第三周 (2016/06/06 - 2016/06/8) 端午快乐

Python爬虫常用的几种数据提取方式

AOP CLUBZ祝大家端午节快乐

吃粽子?不,C语言