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

zhanglei411521 2012-05-10 12:43:51
给关键词加超链接,但忽略已有的超链接,及所有标签属性的内容,

举个例子:

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

原字符串内容:

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

要实现的效果:

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

求高手给出正则表达式,谢谢。
...全文
176 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
q107770540 2012-05-10
  • 打赏
  • 举报
回复
(?<!\"[^>]*)(茶叶)(?!\"|</a>)

代码中引号要转义
zhanglei411521 2012-05-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
(?<!"[^>]*)(茶叶)(?!"|</a>)
[/Quote]

好像不对,报错了。
q107770540 2012-05-10
  • 打赏
  • 举报
回复
(?<!"[^>]*)(茶叶)(?!"|</a>)
zhanglei411521 2012-05-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
str=Regex.Replace(str,"(?<!\")(茶叶)(?!\"|</a>)","<a href=\"新加的链接.html\">$1</a>");
[/Quote]

<img src="茶叶.jpg" width="120" height="120" alt="茶叶" />
变成
<img src="中国茶叶.jpg" width="120" height="120" alt="茶叶" />
就出错了。
EnForGrass 2012-05-10
  • 打赏
  • 举报
回复
str=Regex.Replace(str,"(?<!\")(茶叶)(?!\"|</a>)","<a href=\"新加的链接.html\">$1</a>");
bdmh 2012-05-10
  • 打赏
  • 举报
回复

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);

}

1,979

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 其他语言讨论
社区管理员
  • 其他语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧