NET正则替换问题

oo00gg99 2012-06-12 11:48:28
<img src="/aaa.jpg" /><p>asdfsdfsdf</p>
<img src="/bbb.gif" />
替换为这种
<img data-url="/aaa.jpg" src="/pixel.gif" /><p>asdfsdfsdf</p>
<img data-url="/bbb.gif" src="/pixel.gif" />
请问用.net Regex 怎么正则替换
...全文
121 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
oo00gg99 2012-06-13
  • 打赏
  • 举报
回复
谢谢 Chinajiyong 的回答。
EnForGrass 2012-06-13
  • 打赏
  • 举报
回复

string str = @"<p><img data-url=""/b.jpg"" src=""/_images/pixel.gif""/><img src=""/_images/pixel.gif""/></p>";
Regex reg = new Regex(@"(?is)(?<=<img\b[^>]*?)data-url=(['""\s]?)([^'""]*?)\1[^>]*?(src=)(['""\s]?)([^""']*?)\4(?=[^>]*/>)");
str = reg.Replace(str, @"data-url=$1$2$1 $3$4$2$4");
/*
<p><img data-url="/b.jpg" src="/b.jpg"/><img src="/_images/pixel.gif"/></p>
*/

EnForGrass 2012-06-12
  • 打赏
  • 举报
回复

string str = @"<img src=""/aaa.jpg"" /><p>asdfsdfsdf</p>
<img src=""/bbb.gif"" />";
Regex reg = new Regex(@"(?i)(?<=<img\s*)(src=)(""[^""]+"")[^/]*(?=\/>)");
str = reg.Replace(str, @"data-url=$2 $1""/pixel.gif""");
/*
<img data-url="/aaa.jpg" src="/pixel.gif"/><p>asdfsdfsdf</p>
<img data-url="/bbb.gif" src="/pixel.gif"/>
*/

ParanoidKing 2012-06-12
  • 打赏
  • 举报
回复

new Regex(@"(<img.+)(src=)(\"".+?\"")(.+?\/>)", RegexOptions.IgnoreCase).Replace(原字符串, "$1data-url=$3 $2=\"/pixel.gif\"$4");
EnForGrass 2012-06-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

C# code

Regex reg = new Regex(@"(?i)(?<=<img\s*)(src=)(""[^""]+"")[^/]*(?=\/>)");
str = reg.Replace(str, @"data-url=$2 $1""/pixel.gif""");


能解释一下嘛 谢谢!
[/Quote]
正则表达式
$1表示捕获到第一个分组(以()就表示一个分组)这里捕获到的第一个分组就是“src=”,$2表示捕获到第二个分组,这里捕获到的第二个分组就是src=后面的"/aaa.jpg"和"/bbb.gif"。为什么要捕获呢?主要是方便后面替换。
data-url=$2 就相当于 data-url="/aaa.jpg"
$1""/pixel.gif""就相当于 src="/pixel.gif"

关于正则你可以参考
http://topic.csdn.net/u/20120228/11/88a6fd52-de02-4c3e-9f97-a1ffe2fbab24.html
oo00gg99 2012-06-12
  • 打赏
  • 举报
回复

Regex reg = new Regex(@"(?i)(?<=<img\s*)(src=)(""[^""]+"")[^/]*(?=\/>)");
str = reg.Replace(str, @"data-url=$2 $1""/pixel.gif""");

能解释一下嘛 谢谢!

62,267

社区成员

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

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

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

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