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

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 在等待几个小时就是端午节了,这里预祝各位节日快乐。 这里分享的是几个在C#中常用的正则解析数据写法,其实就是Regex类,至于正则的匹配格式,请仔细阅读正则的api文档,此处不具体说明,谢谢。 开始吧: 1.

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

这里分享的是几个在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#流量统计算法解析​
在数字化办公环境中,员工上网行为监控软件需要高效处理海量网络请求数据,同时实时识别异常行为(如高频访问非工作网站)。传统的时间序列统计方法因计算复杂度过高,难以满足低延迟需求。本文将介绍一种基于滑动窗口的C#统计算法,通过动态时间窗口管理,实现高效的行为模式分析与流量计数。
18 2
JSON数据解析实战:从嵌套结构到结构化表格
在信息爆炸的时代,从杂乱数据中提取精准知识图谱是数据侦探的挑战。本文以Google Scholar为例,解析嵌套JSON数据,提取文献信息并转换为结构化表格,通过Graphviz制作技术关系图谱,揭示文献间的隐秘联系。代码涵盖代理IP、请求头设置、JSON解析及可视化,提供完整实战案例。
188 4
JSON数据解析实战:从嵌套结构到结构化表格
基于 C# 的内网行为管理软件入侵检测算法解析
当下数字化办公环境中,内网行为管理软件已成为企业维护网络安全、提高办公效率的关键工具。它宛如一位恪尽职守的网络守护者,持续监控内网中的各类活动,以确保数据安全及网络稳定。在其诸多功能实现的背后,先进的数据结构与算法发挥着至关重要的作用。本文将深入探究一种应用于内网行为管理软件的 C# 算法 —— 基于二叉搜索树的入侵检测算法,并借助具体代码例程予以解析。
48 4
Bilibili直播信息流:连接方法与数据解析
本文详细介绍了自行实现B站直播WebSocket连接的完整流程。解析了基于WebSocket的应用层协议结构,涵盖认证包构建、心跳机制维护及数据包解析步骤,为开发者定制直播数据监控提供了完整技术方案。
淘宝拍立淘按图搜索API接口系列的应用与数据解析
淘宝拍立淘按图搜索API接口是阿里巴巴旗下淘宝平台提供的一项基于图像识别技术的创新服务。以下是对该接口系列的应用与数据解析的详细分析
深潜数据海洋:Java文件读写全面解析与实战指南
通过本文的详细解析与实战示例,您可以系统地掌握Java中各种文件读写操作,从基本的读写到高效的NIO操作,再到文件复制、移动和删除。希望这些内容能够帮助您在实际项目中处理文件数据,提高开发效率和代码质量。
68 4
【实战解析】smallredbook.item_get_video API:小红书视频数据获取与电商应用指南
本文介绍小红书官方API——`smallredbook.item_get_video`的功能与使用方法。该接口可获取笔记视频详情,包括无水印直链、封面图、时长、文本描述、标签及互动数据等,并支持电商场景分析。调用需提供`key`、`secret`和`num_iid`参数,返回字段涵盖视频链接、标题、标签及用户信息等。同时,文章提供了电商实战技巧,如竞品监控与个性化推荐,并列出合规注意事项及替代方案对比。最后解答了常见问题,如笔记ID获取与视频链接时效性等。
如何高效爬取天猫商品数据?官方API与非官方接口全解析
本文介绍两种天猫商品数据爬取方案:官方API和非官方接口。官方API合法合规,适合企业长期使用,需申请企业资质;非官方接口适合快速验证需求,但需应对反爬机制。详细内容涵盖开发步骤、Python实现示例、反爬策略、数据解析与存储、注意事项及扩展应用场景。推荐工具链包括Playwright、aiohttp、lxml等。如需进一步帮助,请联系作者。
淘宝商品评论API接口系列的应用与数据解析
在电商平台中,用户评论是了解商品质量、服务水平和用户满意度的重要数据来源。淘宝作为中国最大的电商平台,提供了商品评论API接口,帮助开发者获取和分析用户评价数据。本文将介绍淘宝商品评论API接口系列的作用、使用方法,并通过示例展示如何调用API并解析返回的JSON数据。

推荐镜像

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等