在C#中如何使用正式表达式获取匹配所需数据

 更新时间:2016年03月25日 09:32:30   作者:仙桃小白菜  
本文给大家分享C#中如何使用正式表达式获取匹配所需数据 ,非常实用,对正则表达式获取匹配相关知识感兴趣的朋友一起学习吧

需求:获取一串字符串中,正则匹配出需要的数据。

例如以下字符串:

string temp ="ErrorCode:-1,Message:{"UserId" : "1000","userName" : "ZhangSan"}";

我需要获得“-1”和“{"UserId" : "1000","userName" : "ZhangSan"}”;

接下来,就使用正则去匹配:

using System.Text.RegularExpressions;
string temp = "ErrorCode:-,Message:{\"UserId\" : \"\",\"userName\" : \"ZhangSan\"}";
Regex reg = new Regex("ErrorCode:(?<key>.*?),Message:{(?<key>.*?)}");
Match match = reg.Match(temp);
string tempStr = match.Groups["key"].Value + "--" + match.Groups["key"].Value;
MessageBox.Show(tempStr); 

这时候tempStr得到的是”-1--{"UserId" : "1000","userName" : "ZhangSan"}“

下面给大家分享一段代码有关C#中使用正则表达式自动匹配并获取所需要的数据

正则表达式能根据设置匹配各种数据(比如:e-mail地址,电话号码,身份中号码等等)。正则表达式功能强大,使用灵活,C#,Java,JavaScript等多种语言都支持正则表达式。在互联网上“抓取数据”更是少不了使用正则表达式。今天我要说的是在C#中使用正则表达式自动匹配并获取所需要的数据。

从下面是某个IP查询网站返回查询结果的一个部分(字符串),现在就是要从这个字符串中获取“查询结果1:”后面的“北京市 网通”。

< td align ="center" >< ul >< li > 查询结果1:北京市 网通 </ li >< li > 查询结果2:北京市 网通 </ li >< li > 查询结果3:北京市 网通 </ li ></ ul ></ td >

C#相关代码如下:

string srcString = " <td align=\ " center\ " ><ul><li>查询结果1:北京市 网通</li><li>查询结果2:北京市 网通</li><li>查询结果3:北京市 网通</li></ul></td> " ;
// 匹配 "<li>查询结果1:" 与 "</li>" 之间的所有字符的正则表达式
string regexStr = " <li>查询结果1:(?<key>.*?)</li> " ;
Regex r = new Regex(regexStr, RegexOptions.None);
Match mc = r.Match(srcString);
string dataStr = mc.Groups[ " key " ].Value;

说明:

这里最关键的是设置正则表达式: " <li>查询结果1:(?<key>.*?)</li> "。

字符

描述

<key>

根据key获取由正则表达式匹配的值。

.

匹配除 "\n" 之外的任何单个字符。

*

匹配前面的子表达式零次或多次

?

跟在任何一个其他限制符(*, +, ?, {n}, {n,}, {n,m})后面时,匹配模式是非贪婪的;非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。



dataStr 就是我们要得的数据:“北京市 网通”。

相关文章

  • C#带你玩扫雷(附源码)

    C#带你玩扫雷(附源码)

    这篇文章主要介绍了C#带你玩扫雷(附源码),详细的介绍实现扫雷的方法,具体一定的参考价值,有兴趣的可以了解一下
    2017-10-10
  • C# 线程安全详解

    C# 线程安全详解

    这篇文章主要介绍了c# 线程安全的用法原理及使用示例,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下,希望能够给你带来帮助
    2021-09-09
  • C# 设计模式系列教程-策略模式

    C# 设计模式系列教程-策略模式

    策略模式是一种定义一系列算法的方法,从概念上来看,所有算法完成的都是相同的工作,只是实现不同,它可以以相同的方式调用所有的算法,减少了各种算法类与使用算法类之间的耦合。
    2016-06-06
  • C#影院售票系统毕业设计(4)

    C#影院售票系统毕业设计(4)

    这篇文章主要介绍了C#影院售票系统毕业设计,学习内容是总结销售信息的保存以及加载销售信息,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-11-11
  • C#中的枚举类型(Enum)介绍

    C#中的枚举类型(Enum)介绍

    这篇文章介绍了C#中的枚举类型(Enum),文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • 详解WPF中的APP生命周期以及全局异常捕获

    详解WPF中的APP生命周期以及全局异常捕获

    这篇文章主要为大家详细介绍了WPF中的APP生命周期以及全局异常捕获的相关资料,文中的示例代码讲解详细,对我们学习WPF有一点的帮助,需要的可以了解一下
    2023-03-03
  • C#实现简单飞行棋小游戏

    C#实现简单飞行棋小游戏

    这篇文章主要为大家详细介绍了C#实现简单飞行棋小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-03-03
  • C#对桌面应用程序自定义鼠标光标

    C#对桌面应用程序自定义鼠标光标

    这篇文章介绍了C#对桌面应用程序自定义鼠标光标的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • C#异常处理总结及简单实例

    C#异常处理总结及简单实例

    这篇文章主要介绍了C#异常处理总结及简单实例的相关资料,需要的朋友可以参考下
    2017-06-06
  • C#私有构造函数使用示例

    C#私有构造函数使用示例

    本文主要介绍了C#私有构造函数使用方法,私有构造函数是一种特殊的实例构造函数。它通常用在只包含静态成员的类中。如果类具有一个或多个私有构造函数而没有公共构造函数,则其他类(除嵌套类外)无法创建该类的实例
    2014-01-01

最新评论