在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 就是我们要得的数据:“北京市 网通”。
您可能感兴趣的文章
- 01-10C#通过反射获取当前工程中所有窗体并打开的方法
- 01-10C#实现Winform中打开网页页面的方法
- 01-10C#实现由四周向中心缩小的窗体退出特效
- 01-10Extjs4如何处理后台json数据中日期和时间
- 01-10C#实现将窗体固定在显示器的左上角且不能移动的方法
- 01-10C#中DataGridView常用操作实例小结
- 01-10C#编程获取资源文件中图片的方法
- 01-10asp.net中XML如何做增删改查操作
- 01-10C#实现在Form里面内嵌dos窗体的方法
- 01-10C#利用反射技术实现去掉按钮选中时的边框效果
阅读排行
本栏相关
- 01-10C#通过反射获取当前工程中所有窗体并
- 01-10关于ASP网页无法打开的解决方案
- 01-10WinForm限制窗体不能移到屏幕外的方法
- 01-10WinForm绘制圆角的方法
- 01-10C#实现txt定位指定行完整实例
- 01-10WinForm实现仿视频播放器左下角滚动新
- 01-10C#停止线程的方法
- 01-10C#实现清空回收站的方法
- 01-10C#通过重写Panel改变边框颜色与宽度的
- 01-10C#实现读取注册表监控当前操作系统已
随机阅读
- 08-05DEDE织梦data目录下的sessions文件夹有什
- 01-10C#中split用法实例总结
- 01-11Mac OSX 打开原生自带读写NTFS功能(图文
- 01-11ajax实现页面的局部加载
- 01-10使用C语言求解扑克牌的顺子及n个骰子
- 01-10delphi制作wav文件的方法
- 04-02jquery与jsp,用jquery
- 08-05织梦dedecms什么时候用栏目交叉功能?
- 01-10SublimeText编译C开发环境设置
- 08-05dedecms(织梦)副栏目数量限制代码修改