求一个正则表达式 在线等 立马给分

querystringcom 2016-04-22 03:53:50
匹配所有 IMG 的src 属性 更改属性值 (相对路径改为绝对路径)
样板:
 <div class="autocls">
<img src="/UI/temp/A503B23B-D4FF-7748-A3CB-9827CAFF2207.jpg" width="200" height="540"
</div>
<div class="actcn">
<img src="/UI/temp/2C5953DD-837B-4C47-8BD4-A91770CB3A8A.jpg" name="A7EA627F-AC0F-7E42-9BD3-78CB5FE9644A" height="100" width="560" />
<img src="/UI/temp/A7EA627F-AC0F-7E42-9BD3-78CB5FE9644A.jpg" name="A7EA627F-AC0F-7E42-9BD3-78CB5FE9644A" height="100" width="560" />
</div>

更改后:
 <div class="autocls">
<img src="http://localhost:22304/UI/temp/A503B23B-D4FF-7748-A3CB-9827CAFF2207.jpg" width="200" height="540"
</div>
<div class="actcn">
<img src="http://localhost:22304/UI/temp/2C5953DD-837B-4C47-8BD4-A91770CB3A8A.jpg" name="A7EA627F-AC0F-7E42-9BD3-78CB5FE9644A" height="100" width="560" />
<img src="http://localhost:22304/UI/temp/A7EA627F-AC0F-7E42-9BD3-78CB5FE9644A.jpg" name="A7EA627F-AC0F-7E42-9BD3-78CB5FE9644A" height="100" width="560" />
</div>
...全文
160 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
要兼容大小写有两种写法,一种是在正则最前面加(?i),还有一种是正则替换方法有个重载方法,里面有个枚举参数用于指示是否忽略大小写
querystringcom 2016-04-25
  • 打赏
  • 举报
回复
引用 15 楼 starfd 的回复:
script不是你说的img,当然不加绝对路径,确认这还有问题? 至于你后面说的那种,你试验下不就知道符不符合?
试了一下 不兼容大写的 IMG
  • 打赏
  • 举报
回复
script不是你说的img,当然不加绝对路径,确认这还有问题? 至于你后面说的那种,你试验下不就知道符不符合?
querystringcom 2016-04-25
  • 打赏
  • 举报
回复
引用 13 楼 querystringcom 的回复:
[quote=引用 12 楼 starfd 的回复:] 你要script的也添加?你确认你的问题对吗? 匹配所有 IMG 的src 属性 更改属性值 (相对路径改为绝对路径) 下面这两个是给你做测试对应用的,script 就是给你测试只有img可以被修改
<script src="test.js"></script>
<img src="http://demo"/>
是 我也是这么理解的 但确实不效果 并没有改变我绝对路径[/quote] 有一点要特别指明 <img src="http://demo"/> 有可能是<img height="411" src="http://demo"/> img 后面不是src 可能和这有关系吧
querystringcom 2016-04-25
  • 打赏
  • 举报
回复
引用 12 楼 starfd 的回复:
你要script的也添加?你确认你的问题对吗? 匹配所有 IMG 的src 属性 更改属性值 (相对路径改为绝对路径) 下面这两个是给你做测试对应用的,script 就是给你测试只有img可以被修改
<script src="test.js"></script>
<img src="http://demo"/>
是 我也是这么理解的 但确实不效果 并没有改变我绝对路径
  • 打赏
  • 举报
回复
你要script的也添加?你确认你的问题对吗? 匹配所有 IMG 的src 属性 更改属性值 (相对路径改为绝对路径) 下面这两个是给你做测试对应用的,script 就是给你测试只有img可以被修改
<script src="test.js"></script>
<img src="http://demo"/>
querystringcom 2016-04-25
  • 打赏
  • 举报
回复
引用 10 楼 xuzuning 的回复:
什么叫没效果? #7 的代码将产生这样的结果
<script src="test.js"></script>
<div class="autocls">
<img src="http://demo"/>
<img src="http://localhost:22304/UI/temp/A503B23B-D4FF-7748-A3CB-9827CAFF2207.jp
g" width="200" height="540"
</div>
<div class="actcn">
<img src="http://localhost:22304/UI/temp/2C5953DD-837B-4C47-8BD4-A91770CB3A8A.jp
g"  name="A7EA627F-AC0F-7E42-9BD3-78CB5FE9644A" height="100" width="560" />
<img src="http://localhost:22304/UI/temp/A7EA627F-AC0F-7E42-9BD3-78CB5FE9644A.jp
g" name="A7EA627F-AC0F-7E42-9BD3-78CB5FE9644A" height="100" width="560" />
</div>
有什么不对吗? 不知道你这样做的意义,使用完整的 url 后,换的服务器(或端口号)就废掉了 动态更改默认网站应通过 base 标记
http://localhost:22304 是动态获取的 这只是调试 我不会写死的 <script src="test.js"></script> 这句有实际意义吗 我说的没效果是没有添加绝对路径
xuzuning 2016-04-23
  • 打赏
  • 举报
回复
什么叫没效果? #7 的代码将产生这样的结果
<script src="test.js"></script>
<div class="autocls">
<img src="http://demo"/>
<img src="http://localhost:22304/UI/temp/A503B23B-D4FF-7748-A3CB-9827CAFF2207.jp
g" width="200" height="540"
</div>
<div class="actcn">
<img src="http://localhost:22304/UI/temp/2C5953DD-837B-4C47-8BD4-A91770CB3A8A.jp
g"  name="A7EA627F-AC0F-7E42-9BD3-78CB5FE9644A" height="100" width="560" />
<img src="http://localhost:22304/UI/temp/A7EA627F-AC0F-7E42-9BD3-78CB5FE9644A.jp
g" name="A7EA627F-AC0F-7E42-9BD3-78CB5FE9644A" height="100" width="560" />
</div>
有什么不对吗? 不知道你这样做的意义,使用完整的 url 后,换的服务器(或端口号)就废掉了 动态更改默认网站应通过 base 标记
querystringcom 2016-04-22
  • 打赏
  • 举报
回复
引用 7 楼 starfd 的回复:
string html = @"<script src=""test.js""></script>
<div class=""autocls"">
<img src=""http://demo""/>
<img src=""/UI/temp/A503B23B-D4FF-7748-A3CB-9827CAFF2207.jpg"" width=""200"" height=""540"" 
</div>
<div class=""actcn"">
<img src=""/UI/temp/2C5953DD-837B-4C47-8BD4-A91770CB3A8A.jpg""  name=""A7EA627F-AC0F-7E42-9BD3-78CB5FE9644A"" height=""100"" width=""560"" />
<img src=""/UI/temp/A7EA627F-AC0F-7E42-9BD3-78CB5FE9644A.jpg"" name=""A7EA627F-AC0F-7E42-9BD3-78CB5FE9644A"" height=""100"" width=""560"" />
</div>";
html = Regex.Replace(html, @"<img\b[^>]*?src=""(?!(https?|ftp)://)", "$0http://localhost:22304");
Console.WriteLine(html);
这个也试过了 没有效果
querystringcom 2016-04-22
  • 打赏
  • 举报
回复
引用 4 楼 starfd 的回复:
string html = @"<script src=""test.js""></script>
<div class=""autocls"">
<img src=""/UI/temp/A503B23B-D4FF-7748-A3CB-9827CAFF2207.jpg"" width=""200"" height=""540"" 
</div>
<div class=""actcn"">
<img src=""/UI/temp/2C5953DD-837B-4C47-8BD4-A91770CB3A8A.jpg""  name=""A7EA627F-AC0F-7E42-9BD3-78CB5FE9644A"" height=""100"" width=""560"" />
<img src=""/UI/temp/A7EA627F-AC0F-7E42-9BD3-78CB5FE9644A.jpg"" name=""A7EA627F-AC0F-7E42-9BD3-78CB5FE9644A"" height=""100"" width=""560"" />
</div>";
html = Regex.Replace(html, @"<img\b[^>]*?src=""(?=/)", "$0http://localhost:22304");
Console.WriteLine(html);
没效果啊
  • 打赏
  • 举报
回复
string html = @"<script src=""test.js""></script>
<div class=""autocls"">
<img src=""http://demo""/>
<img src=""/UI/temp/A503B23B-D4FF-7748-A3CB-9827CAFF2207.jpg"" width=""200"" height=""540"" 
</div>
<div class=""actcn"">
<img src=""/UI/temp/2C5953DD-837B-4C47-8BD4-A91770CB3A8A.jpg""  name=""A7EA627F-AC0F-7E42-9BD3-78CB5FE9644A"" height=""100"" width=""560"" />
<img src=""/UI/temp/A7EA627F-AC0F-7E42-9BD3-78CB5FE9644A.jpg"" name=""A7EA627F-AC0F-7E42-9BD3-78CB5FE9644A"" height=""100"" width=""560"" />
</div>";
html = Regex.Replace(html, @"<img\b[^>]*?src=""(?!(https?|ftp)://)", "$0http://localhost:22304");
Console.WriteLine(html);
querystringcom 2016-04-22
  • 打赏
  • 举报
回复
引用 2 楼 Yokeqi 的回复:
我看规律是原来的Src都不是相对路径,统一改成相对路径。 如果是这样的话没必要用正则啊,用Replace就够了
前面是相对路径 想要改成后面那种绝对路径
mnxm 2016-04-22
  • 打赏
  • 举报
回复
引用 4 楼 starfd 的回复:
string html = @"<script src=""test.js""></script>
<div class=""autocls"">
<img src=""/UI/temp/A503B23B-D4FF-7748-A3CB-9827CAFF2207.jpg"" width=""200"" height=""540"" 
</div>
<div class=""actcn"">
<img src=""/UI/temp/2C5953DD-837B-4C47-8BD4-A91770CB3A8A.jpg""  name=""A7EA627F-AC0F-7E42-9BD3-78CB5FE9644A"" height=""100"" width=""560"" />
<img src=""/UI/temp/A7EA627F-AC0F-7E42-9BD3-78CB5FE9644A.jpg"" name=""A7EA627F-AC0F-7E42-9BD3-78CB5FE9644A"" height=""100"" width=""560"" />
</div>";
html = Regex.Replace(html, @"<img\b[^>]*?src=""(?=/)", "$0http://localhost:22304");
Console.WriteLine(html);
版主心态就是好
  • 打赏
  • 举报
回复
string html = @"<script src=""test.js""></script>
<div class=""autocls"">
<img src=""/UI/temp/A503B23B-D4FF-7748-A3CB-9827CAFF2207.jpg"" width=""200"" height=""540"" 
</div>
<div class=""actcn"">
<img src=""/UI/temp/2C5953DD-837B-4C47-8BD4-A91770CB3A8A.jpg""  name=""A7EA627F-AC0F-7E42-9BD3-78CB5FE9644A"" height=""100"" width=""560"" />
<img src=""/UI/temp/A7EA627F-AC0F-7E42-9BD3-78CB5FE9644A.jpg"" name=""A7EA627F-AC0F-7E42-9BD3-78CB5FE9644A"" height=""100"" width=""560"" />
</div>";
html = Regex.Replace(html, @"<img\b[^>]*?src=""(?=/)", "$0http://localhost:22304");
Console.WriteLine(html);
querystringcom 2016-04-22
  • 打赏
  • 举报
回复
没明白 怎么弄
枫0子K 2016-04-22
  • 打赏
  • 举报
回复
我看规律是原来的Src都不是相对路径,统一改成相对路径。 如果是这样的话没必要用正则啊,用Replace就够了
querystringcom 2016-04-22
  • 打赏
  • 举报
回复
这个正则表达式没人会吗 没有人会吗

110,502

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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