首页 新闻 会员 周边 捐助

asp.net正则表达式替换IMG src的问题

0
悬赏园豆:20 [已解决问题] 解决于 2015-04-08 14:30

我有一篇文章,内容包括有N张图片,现在想把这些图片的src替换下,规则如下:

原图片: <img src='http://www.11.com/a/t.jpg' alt='' />

需要替换成:<img src='http://www.11.com/a/t.jpg_10x10.jpg' alt='' />

也就是需要在原来的src末尾加上一些字符

韋家小寶的主页 韋家小寶 | 初学一级 | 园豆:184
提问于:2015-03-28 14:50
< >
分享
最佳答案
0

正则表达式如下:

"<img[^>]*src(?:\\s*=\\s*)(?:[\"']?)(?<src>[^\\s\"'>]*)(?:[\"']?)[^>]*>"
收获园豆:20
dudu | 高人七级 |园豆:30948 | 2015-03-28 15:16
System.Collections.Specialized.StringCollection simg = new 
System.Collections.Specialized.StringCollection();
            simg.Add(@"<img\b[^<>]*?\bsrc[\s\t\r\n]*=[\s\t\r\n]*[""']?
[\s\t\r\n]*(?<imgUrl>[^\s\t\r\n""'<>]*)[^<>]*?/?[\s\t\r\n]*>");
            string suffix = "_10x10.jpg";
            foreach (string si in simg)
            {
                desc = Regex.Replace(desc, si, @"<img src='$1"+suffix+ 
"'/>", RegexOptions.IgnoreCase);
            }
            return desc;

你的正则看起来比我这个正规,我是这样写的,还需要一个foreach,我想问有哪个方法不需要遍历的?

韋家小寶 | 园豆:184 (初学一级) | 2015-03-28 17:09
其他回答(1)
0

如果你的图片名称比较规范, 直接 .Replace(".jpg",".jgp_10X10.jpg");  正则都不需用。

问天何必 | 园豆:3311 (老鸟四级) | 2015-03-28 16:53

这样不行的,.replace一次只能替换一个,并且根本无法知道有多少张图片,效率也低。

支持(0) 反对(0) 韋家小寶 | 园豆:184 (初学一级) | 2015-03-28 17:10

@潜龙池: 谁说.replace一次只能替换一个的

支持(0) 反对(0) dudu | 园豆:30948 (高人七级) | 2015-03-28 17:16

@潜龙池: 难道你是用js,就算是js,也有参数可以批量替换。

支持(0) 反对(0) 幻天芒 | 园豆:37205 (高人七级) | 2015-03-28 17:23

@dudu: 不好意思,是我记错了,不过.replace效率还是不如用正则吧,并且假如还有.png等其他格式的话还需要再用replace扫描文章一遍,或者你还有其他比较好的方法?

支持(0) 反对(0) 韋家小寶 | 园豆:184 (初学一级) | 2015-03-28 17:26

@幻天芒: 是的/**/gi ,这个地方g是全局扫描,i 表示忽略大小写

支持(1) 反对(0) | 园豆:780 (小虾三级) | 2015-03-28 17:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册