有人可以帮我在C#.net中创建一个正则表达式来添加target="_blank"到<a>我的内容中的所有标记链接吗?
如果链接已经有目标集,则替换为"_blank".目的是在新窗口中打开我的内容中的所有链接.
感谢您的帮助
-dotnet rocks
关于在解析HTML时不使用正则表达式有很多提及,所以你可以使用Html Agility Pack:
HtmlDocument document = new HtmlDocument();
document.LoadHtml(yourHtml);
var links = document.DocumentNode.SelectNodes("//a");
foreach (HtmlNode link in links)
{
if (link.Attributes["target"] != null)
{
link.Attributes["target"].Value = "_blank";
}
else
{
link.Attributes.Add("target", "_blank");
}
}
Run Code Online (Sandbox Code Playgroud)
这将为target='_blank'文档中的所有锚点添加(或在必要时替换).
小智 5
RegEx.Replace(inputString, "<(a)([^>]+)>", "<$1 target=""_blank""$2>")
Run Code Online (Sandbox Code Playgroud)
它还会在那些已经存在目标的锚标记中添加目标
RegEx.Replace(inputString, "<(a)([^>]+)>", "<$1 target=""_blank""$2>")
Run Code Online (Sandbox Code Playgroud)