string content = "</h1><h1 class='result'>有10,285个结果</h1></h1>";
string pattern = @"</h1><h1 class='result'>有\d*\,?\d*个结果</h1></h1>";可以匹配成功,我想问的是,如何利用 Match 对象将匹配的部分取出来,即 将 "10,285" 这串字符取出来??
string pattern = @"</h1><h1 class='result'>有\d*\,?\d*个结果</h1></h1>";可以匹配成功,我想问的是,如何利用 Match 对象将匹配的部分取出来,即 将 "10,285" 这串字符取出来??
{
if (strHtml == null || pattern == null)
return null; MatchCollection mcs = Regex.Matches(strHtml, pattern);
string[] lst = new string[mcs.Count];
for (int i = 0; i < mcs.Count;i++ )
{
lst[i] = mcs[i].Value;
}
return lst;
}
Regex r = new Regex(pattern , RegexOptions.Compiled);
r.Match(内容).Result("${result}");
(?<=<h1\s+.*?>)(\s+[\u4e00-\u9fa5]+)(?<value>.*?)([\u4e00-\u9fa5]+\s+)(?=</h1>)//取出的value组就是楼主所想要的
string pattern = @"(?<=<h1\s+.*?>)(\s+[\u4e00-\u9fa5]+)(?<value>.*?)([\u4e00-\u9fa5]+\s+)(?=</h1>)";
string content=@"</h1> <h1 class= 'result '> 有10,285个结果 </h1> </h1>";
Regex r = new Regex(pattern);
string result=r.Match(content).Result("${value}");
string content = "</h1><h1 class='result'>有10,285个结果</h1></h1>";
string pattern = @"</h1><h1 class='result'>有(<?result>\d*\,?\d*)个结果</h1></h1>";
Regex _r = new Regex(pattern,RegexOptions.Compiled);
string a = _r.Match(content).Result("${result}");
Response.Write(a);报错:
异常详细信息: System.NotSupportedException: 不能对失败的匹配调用结果。行 20:
行 21: Regex _r = new Regex(pattern,RegexOptions.Compiled);
行 22: string a = _r.Match(content).Result("${result}");
行 23: Response.Write(a);
行 24:
源文件: d:\程序\DotNet技术\视频搜索\soVideo\WebSite\testRegex.aspx.cs 行: 22
string content = @" </h1> <h1 class= 'result '> 有10,285个结果 </h1> </h1> ";
string pattern = @"(?<result>\d+,\d+)";
Regex _r = new Regex(pattern,RegexOptions.Compiled);
Match _m = _r.Match(content);
while (_m.Success)
{
string a = _r.Match(content).Result("${result}");
Console.Write(a);
_m = _m.NextMatch();
}
string content = "</h1><h1 class='result'>有10,285个结果</h1></h1>";
string pattern = @"</h1><h1\s*class='result'>有(?<num>\d*,?\d*)个结果</h1></h1>";
Match m = Regex.Match(content, pattern, RegexOptions.IgnoreCase);//m.Groups["num"] is your need
string pattern = @"</h1><h1\s*class='result'>有(?<num>\d*,?\d*)个结果</h1></h1>";
Match m = Regex.Match(content, pattern, RegexOptions.IgnoreCase);
if(m.Sucess)
{
string str=m.group["num"].Value.ToString();
}