C# 正则表达式捕获组问题
我想解析html文件中的所有链接标记。为此,我写了如下正则表达式C# 正则表达式捕获组问题,c#,.net,regex,C#,.net,Regex,我想解析html文件中的所有链接标记。为此,我写了如下正则表达式 var pattern = @"<(LINK).*?HREF=(""|')?(?<URL>.*?)(""|')?.*?>"; var regExOptions = RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.Multiline; var linkRegEx = new Regex(pattern , regExOptions
var pattern = @"<(LINK).*?HREF=(""|')?(?<URL>.*?)(""|')?.*?>";
var regExOptions = RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.Multiline;
var linkRegEx = new Regex(pattern , regExOptions );
foreach (Match match in linkRegEx.Matches(htmlFile))
{
var group = match.Groups["URL"];
var url = group.Value;
}
var模式=@”;
var regExOptions=regExOptions.Compiled | regExOptions.IgnoreCase | regExOptions.Multiline;
var linkRegEx=新正则表达式(模式、正则表达式选项);
foreach(linkRegEx.Matches(htmlFile)中的匹配)
{
var group=match.Groups[“URL”];
var url=group.Value;
}
但实际情况是,我从html文件中找到了匹配项,但我得到的是空白捕获组 您可以尝试以下模式:
var pattern = @"<(LINK).*?HREF=(?:([""'])(?<URL>.*?)\2|(?<URL>[^\s>]*)).*?>";
var模式=@“
,贪婪地,在组URL
中捕获
产生url=“Foo”
产生url=“Bar”
产生url=“Baz”