C# 为HTML创建正则表达式

C# 为HTML创建正则表达式,c#,.net,regex,C#,.net,Regex,我需要一个正则表达式来帮助我在字符串中进行匹配。这是包含我需要的信息的行: <td width="140" height="18"><a href="users_folders.cfm?viewfolder=86&viewsub=20207&addSub=20202" class="folderNav"><strong>087690898</strong></a></td> 我需要从中提取的是href“

我需要一个正则表达式来帮助我在字符串中进行匹配。这是包含我需要的信息的行:

<td width="140" height="18"><a href="users_folders.cfm?viewfolder=86&viewsub=20207&addSub=20202" class="folderNav"><strong>087690898</strong></a></td>

我需要从中提取的是href
“users\u folders.cfm?viewfolder=86&viewsub=20207&addSub=20202”的地址和存储在两个强标记之间的值
087690898
。所以我只需要识别像这样的线条

所以我已经弄明白了这一点:

(匹配任意字符或数字)(匹配

我已将其创建为我的正则表达式:

[a-z](

一旦我识别了这个字符串,我就可以解析它并提取我所需要的值,但是识别我遇到问题的字符串是非常困难的。我对正则表达式不太熟悉,不知道该怎么做。我知道m正则表达式有缺陷。我用的是C#


另外,我知道你不应该在HTML上使用正则表达式,但为此,我不介意一个快速而肮脏的解决方案。

尽管纯粹主义者会因为我违反正则表达式/HTML规则而谴责我,但你需要的是:

string line = @"<td width=""140"" height=""18""><a href=""users_folders.cfm?viewfolder=86&viewsub=20207&addSub=20202"" class=""folderNav""><strong>087690898</strong></a></td>";
Match match = Regex.Match(line, @"<a href=""(?<addr>[^""]*)"" class=""folderNav""><strong>(?<val>[^<]*)</strong></a>");
string addr = match.Groups["addr"].Value;
string val = match.Groups["val"].Value;
stringline=@”;
Match=Regex.Match(行@“”);
字符串addr=match.Groups[“addr”].Value;
字符串val=match.Groups[“val”].Value;
(?表达式)
部分称为“”;您可以通过链接到MSDN来阅读更多关于它们的信息


在上面的代码中,我们使用命名子表达式来匹配地址和值。在每种情况下,我们都允许匹配任何字符,预期的终止符除外。对于
href
地址,属性值在
之前结束;因此,我们匹配
[^”]*
。在
值的情况下,元素文本在
之前结束,尽管纯粹主义者会因为我违反了regex/HTML规则而谴责我,但以下是您需要的:

string line = @"<td width=""140"" height=""18""><a href=""users_folders.cfm?viewfolder=86&viewsub=20207&addSub=20202"" class=""folderNav""><strong>087690898</strong></a></td>";
Match match = Regex.Match(line, @"<a href=""(?<addr>[^""]*)"" class=""folderNav""><strong>(?<val>[^<]*)</strong></a>");
string addr = match.Groups["addr"].Value;
string val = match.Groups["val"].Value;
stringline=@”;
Match=Regex.Match(行@“”);
字符串addr=match.Groups[“addr”].Value;
字符串val=match.Groups[“val”].Value;
(?表达式)
部分称为“”;您可以通过链接到MSDN来阅读更多关于它们的信息


在上面的代码中,我们使用命名子表达式来匹配地址和值。在每种情况下,我们都允许匹配任何字符,预期的终止符除外。对于
href
地址,属性值在
之前结束;因此,我们匹配
[^”]*
。在
值的情况下,元素文本在
之前结束,类似这样的内容对我很有用:

<a href="(?<HREF>[^\"\ ]*)"[^\>]*><strong>(?<TEXT>.*)</strong>

像这样的东西对我很有用:

<a href="(?<HREF>[^\"\ ]*)"[^\>]*><strong>(?<TEXT>.*)</strong>

要更好地解析html,请使用

要更好地解析html,请使用

,仅仅因为它的相似性并不意味着您必须像dupe一样关闭。事实上,有些时候,仅仅因为它相似并不意味着你必须像傻瓜一样接近。事实上,有些时候,它工作得很好。非常感谢。工作得很好。非常感谢。