源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2020-09-04 02:06 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:在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); 
[img]http://files.jb51.net/file_images/article/201603/2016032509534313.png[/img] 这时候tempStr得到的是”-1--{"UserId" : "1000","userName" : "ZhangSan"}“ [b]下面给大家分享一段代码有关C#中使用正则表达式自动匹配并获取所需要的数据[/b] 正则表达式能根据设置匹配各种数据(比如: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 就是我们要得的数据:“北京市 网通”。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部