求一链接替换正则

hz_gis 2012-04-16 05:16:39
需求是这样的:有一段文本,里面可能包含一个或者多个链接的html.
现在需要修改成这样:如果链接不带target属性,则添加target='_blank';如果target属性是其他,则设置为target='_blank'
求实现代码,小弟谢过了。
...全文
140 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hz_gis 2012-04-16
  • 打赏
  • 举报
回复
谢过楼上大神。。。我先试试去
huangwenquan123 2012-04-16
  • 打赏
  • 举报
回复
test

string str = @"<a href=""http:www.csdn.net"" target=""_blank"">csdn</a>
<a href=""http:www.csdn.net"">csdn</a>
<a href=""http:www.csdn.net"" target=""csdn"">csdn</a>
<a href=""http:www.csdn.net"" target=""baidu"">csdn</a>
<a target=""baidu"" href=""http:www.csdn.net"">csdn</a>
<a target=""_blank"" href=""http:www.csdn.net"">csdn</a>
<a href=""http:www.csdn.net"" target=""_blank"">csdn</a>";
Regex reg = new Regex(@"(?is)(?<=<a\b)(?:((?:(?!target)[^>])*)>|[^>]*?target=""(?!_blank)[^'""\s]+""[^>]*?>)");
string result = reg.Replace(str, delegate(Match m)
{
if (m.Groups[1].Success)
return m.Groups[1].Value + @" target=""_blank""";
else
return Regex.Replace(m.Value, @"(?<=target="")[^""]+(?="")", "_blank");
});
Console.WriteLine(result);
/*
<a href="http:www.csdn.net" target="_blank">csdn</a>
<a href="http:www.csdn.net" target="_blank"csdn</a>
<a href="http:www.csdn.net" target="_blank">csdn</a>
<a href="http:www.csdn.net" target="_blank">csdn</a>
<a target="_blank" href="http:www.csdn.net">csdn</a>
<a target="_blank" href="http:www.csdn.net">csdn</a>
<a href="http:www.csdn.net" target="_blank">csdn</a>
*/
hz_gis 2012-04-16
  • 打赏
  • 举报
回复
么有人啊
功能包含标注、文本、路径、颜色、画板、包装、拼板、设计、输出和效果等大类,常用功能如:标注横尺寸,标注纵尺寸,标注尺寸,轻松画包装1,轻松画包装2,天地盖盒子,绘制手提袋,绘制外箱,生成出血线,文本段落分行,段落行合并,文本段落转换,单行拆单字,字体转曲,大小写转换,查找专色,两者换位,选择导出-PSD,导出jpg,选择导出jpg,选择增强,随机填色,圆角插件,锚点分割路径,等分路径,建立等分圆,测量路径长度,点到点连线,节点延伸,解锁全部对象,统一画板尺寸,当前画板矩形,全部画板矩形,垂直两分,水平两分,插入页码等,多图层转多画板,页面适配对象,裁切标记,印前角线,一键拼版,自动拼版,阵列复制,标记线生成,创建参考线,打开多页PDF,置入PDF多页面,条形码及二维码,色标生成器,移除叠印属性,移除非纯黑叠印,解散全部群组,批量替换链接图,链接文件打包,全部颜色转黑,查找白色叠印,删除所有蒙版,正则编辑文本,流水号生成器,统计所选对象,。 作者会持续更新,如果您有需要的功能,可以给作者留言,作者闲时进行制作。欢迎下载使用,安装完毕之后,在窗口菜单>扩展>知了插件,打开即可使用。

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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