正则表达式 - 将target ="blank"添加到我的内容中的所有<a>标记链接

dot*_*cks 3 c# regex

有人可以帮我在C#.net中创建一个正则表达式来添加target="_blank"<a>我的内容中的所有标记链接吗?

如果链接已经有目标集,则替换为"_blank".目的是在新窗口中打开我的内容中的所有链接.

感谢您的帮助

-dotnet rocks

Ale*_*lex 9

关于在解析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)

它还会在那些已经存在目标的锚标记中添加目标


Bra*_*ery 0

RegEx.Replace(inputString, "<(a)([^>]+)>", "<$1 target=""_blank""$2>")
Run Code Online (Sandbox Code Playgroud)