在C#中使用正则表达式自动匹配并获取所需要的数据

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

    说明:
    这里最关键的是设置正则表达式: "
  • 查询结果1:(?.*?)
  • "。
    字符
    描述
    根据key获取由正则表达式匹配的值。
    .
    匹配除 "/n" 之外的任何单个字符。
    *
    匹配前面的子表达式零次或多次
    ?
    跟在任何一个其他限制符(*, +, ?, {n}, {n,}, {n,m})后面时,匹配模式是非贪婪的;非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。
    dataStr 就是我们要得的数据:“北京市 网通”。
     

    你可能感兴趣的:(C Sharp)