从下面是某个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:" 与 "</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})后面时,匹配模式是非贪婪的;非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。 |
来自:http://www.cnblogs.com/anjou/archive/2007/03/20/681744.html