我正在寻找一种方法来删除字符串中对内部Intranet站点的所有引用,同时保留标签。
例如:
Dim str As String = Nothing
str &= "<a href=""http://intranet/somepage.asp"">Internal Page</a>"
str &= "<a href=""http://www.external.com"">External Page</a>"
引用http://intranet的任何内容都将被视为内部内容,需要使用正则表达式进行解析和删除。
感谢您的帮助。
由于
答案 0 :(得分:2)
虽然它不是正则表达式解决方案,但它同样简单。鉴于上面的两个例子,您可以执行以下操作:
Private Function IntranetCheck(ByVal link As String) As String
If link.ToLower().Contains("http://intranet/") Then
Return link.Split(">")(1).Split("<")(0)
Else
Return link
End If
End Function
用法:
Dim str As String = Nothing
str &= IntranetCheck("<a href=""http://intranet/somepage.asp"">Internal Page</a>")
str &= IntranetCheck("<a href=""http://www.external.com"">External Page</a>")
这将检查传入的字符串是否包含Intranet地址,如果是,它将拆分字符串以仅返回元素的内部文本。
答案 1 :(得分:0)
我强烈建议您使用Html Agility Pack进行此类处理。使用此工具,您可以执行以下操作:
HtmlDocument doc;
doc.Load(fileName);
foreach(HtmlNode anchor in doc.DocumentNode.Descendants("a").Where(n => n.GetAttributeValue("href", string.Empty).Contains("intranet")))
{
// Change your href attribute here
string newHref = anchor.GetAttributeValue("href", string.Empty).Replace("intranet", "somethingelse");
anchor.SetAttributeValue("href", newHref);
}