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

2019-12-30 11:53:27王振洲


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})后面时,匹配模式是非贪婪的;非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。