在正则表达式中使用匹配组

本文关键字:正则表达式 | 更新日期: 2023-09-27 18:24:49

我有一个字符串,如下所示:

<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的匹配组,它应该能够提取这个值。但是,这个正则表达式与我的字符串不匹配。有人能帮我解决一下我的正则表达式出了什么问题吗?

在正则表达式中使用匹配组

如果文本保证是XML,那么使用XML工具将比使用regex更容易。

string val = XDocument.Parse(input).Element("td").Element("a").Value;

或者,您可以使用HTML解析器。Regex将是我最后的选择。无论HTML或XML看起来多么简单,您总是会遇到使用regex解析它的怪癖。

什么意思是它不匹配?我只是剪了&将代码粘贴到一个新的控制台应用程序中,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;