现在有这么一个需求,我在编辑文档的时候,需要将文档内所有的<img>标签替换需要的内容。 <p> <img src="http://localhost:9186/upload/image/20150416/6356482317004106408355884.jpg" title="356019.jpg" alt="356019.jpg"/> <img src="http://localhost:9186/upload/image/20150416/6356482317004106408355884.jpg" title="356019.jpg" alt="356019.jpg"/> </p> <p> <img src="empty.png" data-original="http://localhost:9186/upload/image/20150416/6356482317004106408355884.jpg" title="356019.jpg" alt="356019.jpg"/> <img src="empty.png" data-original="http://localhost:9186/upload/image/20150416/6356482317004106408355884.jpg" title="356019.jpg" alt="356019.jpg"/> </p> 前提是要保证src和data-original都只能在一个标签中出现一次! |
|
常用正则表达式收集 asp.net 验证正则表达式
整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$ |
|
请楼上的这位朋友,认真对待每件事
|
|
你直接伸手要得了。不过总得在碗里放两个钱才行。 |
|
不是我要啊,我写不出来啊,都搞了个通宵了,不能耽误太多时间啊 |
|
那你替换时把src=”empty.png” 这个也给加上呀,会就不会出现了呀。还有你这个只有在 提交后再处理, |
|
嗯,其实我需要的是这个正则,过程是想到的。 |
|
string html = @"<p> <script src=""http://www.localhost.com/js.js""></script> <img src=""http://localhost:9186/upload/image/111111111111.jpg"" data-original="""" title=""356019.jpg"" alt=""356019.jpg""/> <img title=""356019.jpg"" alt=""356019.jpg"" src=""http://localhost:9186/upload/image/222222222222.jpg"" /> <img src=""http://localhost:9186/upload/image/333333333333.jpg"" data-original=""http://localhost:9186/upload/image/333333333333.jpg"" title=""356019.jpg"" alt=""356019.jpg"" testProperty=""test_info""/> <img data-original=""http://localhost:9186/upload/image/44444444444.jpg"" title=""356019.jpg"" alt=""356019.jpg"" testProperty=""test_info""/> </p>"; Console.WriteLine(html); Console.WriteLine("替换后"); Console.WriteLine(Regex.Replace(html, @"<img(?<imgStart>\b[^<>]*?\b)(?<imgSrc>src[\s\t\r\n]*=[\s\t\r\n]*)(?<imgUrl>[""""]?[\s\t\r\n]*[^\s\t\r\n""""<>]*)(?<imgOriginal>data-original[\s\t\r\n]*=[\s\t\r\n]*?[""""]?[\s\t\r\n]*[^\s\t\r\n""""<>]*)?(?<imgEnd>[^<>]*?/?[\s\t\r\n]*)>", @"<img $1$2""empty.jpg"" data-original=$3$4>")); Console.ReadKey(); 网上以为朋友给的灵感,自己弄出来了,可能有些复杂,还请各位给出一个简单点的表达式, |
|
50分 |
你不是已经弄出来了么……
看你在Ask里面 |
static void RegexReplaceSrc2() { string html = @"<p> <script src=""http://www.localhost.com/js.js""></script> <img src=""http://localhost:9186/upload/image/111111111111.jpg"" data-original="""" title=""356019.jpg"" alt=""356019.jpg""/> <img title=""356019.jpg"" alt=""356019.jpg"" src=""http://localhost:9186/upload/image/222222222222.jpg"" /> <img src=""http://localhost:9186/upload/image/333333333333.jpg"" data-original=""http://localhost:9186/upload/image/333333333333.jpg"" title=""356019.jpg"" alt=""356019.jpg"" testProperty=""test_info""/> <img data-original=""http://localhost:9186/upload/image/44444444444.jpg"" title=""356019.jpg"" alt=""356019.jpg"" testProperty=""test_info""/> </p>"; var tmp = Regex.Replace(html, @"<img\s+[^>]*\bsrc=""[^""]*""[^>]*/>", x => { string v = x.Value; if (!Regex.IsMatch(x.Value, @"\bdata-original\b")) { v = Regex.Replace(x.Value, @"src=(""[^""]*"")", @"src=""empty.png"" data-original=$1"); } return v; }); Console.WriteLine(tmp); } |
|
static void RegexReplaceSrc2() { string html = @"<p> <script src=""http://www.localhost.com/js.js""></script> <img src=""http://localhost:9186/upload/image/111111111111.jpg"" data-original="""" title=""356019.jpg"" alt=""356019.jpg""/> <img title=""356019.jpg"" alt=""356019.jpg"" src=""http://localhost:9186/upload/image/222222222222.jpg"" /> <img src=""http://localhost:9186/upload/image/333333333333.jpg"" data-original=""http://localhost:9186/upload/image/333333333333.jpg"" title=""356019.jpg"" alt=""356019.jpg"" testProperty=""test_info""/> <img data-original=""http://localhost:9186/upload/image/44444444444.jpg"" title=""356019.jpg"" alt=""356019.jpg"" testProperty=""test_info""/> </p>"; var tmp = Regex.Replace(html, @"<img\s+[^>]*\bsrc=""[^""]*""[^>]*/>", x => { string v = x.Value; if (!Regex.IsMatch(x.Value, @"\bdata-original\b")) { v = Regex.Replace(x.Value, @"src=(""[^""]*"")", @"src=""empty.png"" data-original=$1"); } return v; }); Console.WriteLine(tmp); } 嗯,很感谢你,你给的灵感,不过这句有不完整的地方。还请给个简单点的表达式,正则我很菜 |
|
上面那个哪里有问题不完整
这不是我之前回的那个了,这是新的,包含了第一次的那个 |
|
嗯嗯,很感谢你了。非常感谢。 |