在正则表达式中获取组的值
本文关键字:获取 正则表达式 | 更新日期: 2023-09-27 18:36:33
在C#中,我的正则表达式有以下模式:
string pattern = "<div class='"alt'" title='"[''w''s]+'"><strong>([''w''s]+)</strong></div>";
我创建一个Match
对象,如下所示:
status = Regex.Match(html, pattern);
但是,如果我在状态上调用 .groups(),即使有匹配项,我也会得到空白文本。我是否正确提取了组?
编辑:这是一些HTML,
<tr>
<td>
<div class="alt" title="Released to Manufacturing">
<strong>Released to Manufacturing</strong>
string strRegex = @"<div class=""alt"" title=""['w's]+""><strong>(['w's]+)</strong></div>";
RegexOptions myRegexOptions = RegexOptions.IgnoreCase | RegexOptions.Multiline;
Regex myRegex = new Regex(strRegex, myRegexOptions);
string strTargetString = @"<div class=""alt"" title=""released""><strong>Released</strong></div>";
foreach (Match myMatch in myRegex.Matches(strTargetString))
{
if (myMatch.Success)
{
var value = myMatch.Groups[1].Value;
}
}
使用正则表达式英雄验证
正则表达式不用于解析 html。
使用 html 解析器,如 Htmlagilitypack
HtmlDocument doc = new HtmlDocument();
doc.Load(yourStream);
var altElementValues= doc.DocumentNode
.SelectNodes("//div[@class='alt']/strong")
.Select(x=>x.InnerText);