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)

 

目录
相关文章
|
14天前
|
数据采集 存储 JavaScript
如何使用Cheerio与jsdom解析复杂的HTML结构进行数据提取
在现代网页开发中,复杂的HTML结构给爬虫技术带来挑战。传统的解析库难以应对,而Cheerio和jsdom在Node.js环境下提供了强大工具。本文探讨如何在复杂HTML结构中精确提取数据,结合代理IP、cookie、user-agent设置及多线程技术,提升数据采集的效率和准确性。通过具体示例代码,展示如何使用Cheerio和jsdom解析HTML,并进行数据归类和统计。这种方法适用于处理大量分类数据的爬虫任务,帮助开发者轻松实现高效的数据提取。
如何使用Cheerio与jsdom解析复杂的HTML结构进行数据提取
|
5天前
|
存储 C# 开发者
枚举与结构体的应用:C#中的数据组织艺术
在C#编程中,枚举(`enum`)和结构体(`struct`)是非常重要的数据类型。枚举用于定义命名常量集合,提高代码可读性;结构体则封装相关数据字段,适合小型数据集。本文从基本概念入手,探讨它们的使用技巧、常见问题及解决方案,帮助开发者更好地利用这些特性构建健壮的应用程序。
20 8
|
15天前
|
XML JSON API
淘宝京东商品详情数据解析,API接口系列
淘宝商品详情数据包括多个方面,如商品标题、价格、图片、描述、属性、SKU(库存量单位)库存、视频等。这些数据对于买家了解商品详情以及卖家管理商品都至关重要。
|
9天前
|
存储 JSON API
Python编程:解析HTTP请求返回的JSON数据
使用Python处理HTTP请求和解析JSON数据既直接又高效。`requests`库的简洁性和强大功能使得发送请求、接收和解析响应变得异常简单。以上步骤和示例提供了一个基础的框架,可以根据你的具体需求进行调整和扩展。通过合适的异常处理,你的代码将更加健壮和可靠,为用户提供更加流畅的体验。
26 0
|
17天前
|
监控 安全 网络安全
|
17天前
|
数据库 Java 监控
Struts 2 日志管理化身神秘魔法师,洞察应用运行乾坤,演绎奇幻篇章!
【8月更文挑战第31天】在软件开发中,了解应用运行状况至关重要。日志管理作为 Struts 2 应用的关键组件,记录着每个动作和决策,如同监控摄像头,帮助我们迅速定位问题、分析性能和使用情况,为优化提供依据。Struts 2 支持多种日志框架(如 Log4j、Logback),便于配置日志级别、格式和输出位置。通过在 Action 类中添加日志记录,我们能在开发过程中获取详细信息,及时发现并解决问题。合理配置日志不仅有助于调试,还能分析用户行为,提升应用性能和稳定性。
35 0
|
17天前
|
开发者 Java
JSF EL 表达式:乘技术潮流之风,筑简洁开发之梦,触动开发者心弦的强大语言
【8月更文挑战第31天】JavaServer Faces (JSF) 的表达式语言 (EL) 是一种强大的工具,允许开发者在 JSF 页面和后台 bean 间进行简洁高效的数据绑定。本文介绍了 JSF EL 的基本概念及使用技巧,包括访问 bean 属性和方法、数据绑定、内置对象使用、条件判断和循环等,并分享了最佳实践建议,帮助提升开发效率和代码质量。
25 0
|
17天前
|
前端开发 开发者 C#
深度解析 Uno Platform 中的 MVVM 模式:从理论到实践的全方位指南,助你轻松掌握通过 C# 与 XAML 构建高效可维护的跨平台应用秘籍
【8月更文挑战第31天】本文详细介绍如何在优秀的跨平台 UI 框架 Uno Platform 中实施 MVVM(Model-View-ViewModel)模式,通过一个简单的待办事项列表应用演示其实现过程。MVVM 模式有助于分离视图层与业务逻辑层,提升代码组织性、易测性和可维护性。Uno Platform 的数据绑定机制使视图与模型间的同步变得高效简便。文章通过构造 `TodoListViewModel` 类及其相关视图,展示了如何解耦视图与模型,实现动态数据绑定及命令处理,从而提高代码质量和开发效率。通过这一模式,开发者能更轻松地构建复杂的跨平台应用。
25 0
|
17天前
|
开发者 监控 开发工具
如何将JSF应用送上云端?揭秘在Google Cloud Platform上部署JSF应用的神秘步骤
【8月更文挑战第31天】本文详细介绍如何在Google Cloud Platform (GCP) 上部署JavaServer Faces (JSF) 应用。首先,确保已准备好JSF应用并通过Maven构建WAR包。接着,使用Google Cloud SDK登录并配置GCP环境。然后,创建`app.yaml`文件以配置Google App Engine,并使用`gcloud app deploy`命令完成部署。最后,通过`gcloud app browse`访问应用,并利用GCP的监控和日志服务进行管理和故障排查。整个过程简单高效,帮助开发者轻松部署和管理JSF应用。
32 0
|
17天前
|
开发者 容器 Java
Azure云之旅:JSF应用的神秘部署指南,揭开云原生的新篇章!
【8月更文挑战第31天】本文探讨了如何在Azure上部署JavaServer Faces (JSF) 应用,充分发挥其界面构建能力和云平台优势,实现高效安全的Web应用。Azure提供的多种服务如App Service、Kubernetes Service (AKS) 和DevOps简化了部署流程,并支持应用全生命周期管理。文章详细介绍了使用Azure Spring Cloud和App Service部署JSF应用的具体步骤,帮助开发者更好地利用Azure的强大功能。无论是在微服务架构下还是传统环境中,Azure都能为JSF应用提供全面支持,助力开发者拓展技术视野与实践机会。
11 0

热门文章

最新文章

推荐镜像

更多