<p>发给看似<a href="http://www.abc.com/">简单</a>公开了时<a href="http://asd.abc.com/">是路</a>附近看来是地方</p>
<p>是大方<a href="http://abc.com/">科技</a>是度省了国际;<a href="http://www.ddd.com/">上来</a>打根据凉开水</p>
我想要的结果是
<p>发给看似<a href="http://www.abc.com/">简单</a>公开了时<a href="http://asd.abc.com/">是路</a>附近看来是地方</p>
<p>是大方<a href="http://abc.com/">科技</a>是度省了国际;上来打根据凉开水</p>
我写了一个如下
/// <summary>
    /// 删除超链接 保留指定域名的
    /// </summary>
    /// <param name="pendingString">带HTML标签的字符串</param>
    /// <returns></returns>
    public string Delhref(string pendingString)
    {
        Regex reg = new Regex(@"(?is)</?a\b.*?href=(['""]?)(?!(?:http://)?abc\.com)[^'""\s>]+\1[^>]*>(?<text>(?:(?!</?a).)*)</a>");
        string result = reg.Replace(pendingString, "${text}");
        return result;
    }

解决方案 »

  1.   

    try...            string test = @"<p>发给看似<a href=""http://www.abc.com/"">简单</a>公开了时<a href=""http://asd.abc.com/"">是路</a>附近看来是地方</p>
    <p>是大方<a href=""http://abc.com/"">科技</a>是度省了国际;<a href=""http://www.ddd.com/"">上来</a>打根据凉开水</p>
    <p>是打双方双方上课了</p>";
                Regex reg = new Regex(@"(?is)<a[^>]*?href=""(?:http://)?[^/>]*(?<!\babc\.com)/(?!/)[^""]*""[^>]*>(.*?)</a>");
                string result = reg.Replace(test, "$1");
                richTextBox2.Text = result;