正则表达式找到Href值

时间:2011-07-29 13:20:02

标签: c# asp.net regex

我有一个字符串,其中我有锚标记我想知道那些锚标记的href值。 我的字符串就像:

This is Test page <a href='test.aspx'>test page</a> .

在此我想找到href的值,即 test.aspx

请为此建议任何好的regx小组。

3 个答案:

答案 0 :(得分:3)

如果您使用<a [^>]*href=(?:'(?<href>.*?)')|(?:"(?<href>.*?)"),则结果将存储在命名组href

示例:

var inputString="This is Test page <a href='test.aspx'>test page</a>";
var regex=new Regex("<a [^>]*href=(?:'(?<href>.*?)')|(?:\"(?<href>.*?)\")",RegexOptions.IgnoreCase);
var urls=regex.Matches(inputString).OfType<Match>().Select(m =>m.Groups["href"].Value);

url将是包含hrefs的字符串集合。

答案 1 :(得分:3)

不要在HTML上使用Regex,而是考虑使用Html Agility Pack代替。

答案 2 :(得分:1)

以下正则表达式可以解决问题:

href=['"]([^'"]+?)['"]