当前位置: 代码迷 >> .NET相关 >> 给基本词加超链接,但忽略已有的超链接,及所有标签属性的内容
  详细解决方案

给基本词加超链接,但忽略已有的超链接,及所有标签属性的内容

热度:7859   发布时间:2013-02-26 00:00:00.0
给关键词加超链接,但忽略已有的超链接,及所有标签属性的内容,
给关键词加超链接,但忽略已有的超链接,及所有标签属性的内容,

举个例子:

条件:给所有带茶叶的关键词加链接

原字符串内容:

这儿是茶叶的链接。
<img src="茶叶.jpg" width="120" height="120" alt="茶叶" />
<span title="中国好茶叶">中国茶叶</span>
这儿是中国茶叶大观的链接。
这儿是<a href="原有的链接">茶叶</a>的现有链接。

要实现的效果:

这儿是<a href="新加的链接">茶叶</a>的链接。
<img src="茶叶.jpg" width="120" height="120" alt="茶叶" />
<span title="中国好茶叶">中国<a href="新加的链接">茶叶</a></span>
这儿是中国<a href="新加的链接">茶叶</a>大观的链接。
这儿是<a href="原有的链接">茶叶</a>的现有链接。

求高手给出正则表达式,谢谢。

------解决方案--------------------------------------------------------

        private string ReplaceStr(Match m)
        {
            return "<a href=xxxxxx>" + m.Value + "</a>";
        }       

        private void button10_Click(object sender, EventArgs e)
        {            
            StreamReader reader = new StreamReader("c:\\1.txt");
            string source = reader.ReadToEnd();
            Regex reg = new Regex(@"(?<!((<a[^>].*?)
------解决方案--------------------------------------------------------
(<span[^>].*?)))茶叶");
            source = reg.Replace(source, ReplaceStr);
            MessageBox.Show(source);

        }

------解决方案--------------------------------------------------------
str=Regex.Replace(str,"(?<!\")(茶叶)(?!\"
------解决方案--------------------------------------------------------
</a>)","<a href=\"新加的链接\">$1</a>");
------解决方案--------------------------------------------------------
(?<!\"[^>]*)(茶叶)(?!\"
------解决方案--------------------------------------------------------
</a>)

代码中引号要转义
  相关解决方案