我有一个看起来像这样的字符串:
<td width="308">Services Needed: <a href="javascript:void(null);" title="weekly - 1 hour">ST</a></td>
我需要能够匹配它,并提取信息。我正在尝试使用带有正则表达式的匹配组。下面是我的代码:
Match match = Regex.Match(line, @"<a href=""(?<scr>[^""]*)"" title=""(?<title>[^""]*)"">(?<val>[^<]*)");
string val = match.Groups["val"].Value;
我需要提取的是字符串中的“ST”值。我有一个名为val
的匹配组,应该可以提取此值。但是,此正则表达式与我的字符串不匹配。有人可以帮我解决我的正则表达方式有什么问题吗?
答案 0 :(得分:2)
如果文本保证是XML,那么使用XML工具比使用正则表达式更容易。
string val = XDocument.Parse(input).Element("td").Element("a").Value;
或者,您可以使用HTML解析器。正则表达式将是我的最后选择。无论HTML或XML看起来多么简单,你总是会遇到使用正则表达式解析它的怪癖。
答案 1 :(得分:1)
你是什么意思不匹配?我只是削减&amp;将代码粘贴到新的控制台应用程序中,match.Groups["val"]
包含值"ST"
:
string line = @"<td width=""308"">Services Needed: <a href=""javascript:void(null);"" title=""weekly - 1 hour"">ST</a></td>";
Match match = Regex.Match(line, @"<a href=""(?<scr>[^""]*)"" title=""(?<title>[^""]*)"">(?<val>[^<]*)");
string val = match.Groups["val"].Value;