正则问题

智者知已应修善业 2012-08-18 12:43:17
Regex 图片网址 = new Regex(@"<img\b[^<>]*?\bsrc[\s\t\r\n]*=[\s\t\r\n]*[""']?[\s\t\r\n]*(?<imgUrl>[^\s\t\r\n""'<>]*)[^<>]*?/?[\s\t\r\n]*>", RegexOptions.IgnoreCase);

上面正则好像不太正确,不是图片的网址也存在,正确的是怎么写?
...全文
204 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
        private void 粘贴_Click(object sender, EventArgs e)
{
this.BeginInvoke(new Action(() =>
{
try
{
/*上面代码这样捕获404异常通过WebException*/
}
catch (WebException Ts)
{
MessageBox.Show("请重新选择图片!" + Ts.ToString().Substring(0, Ts.ToString().IndexOf("在") - 1), "遗憾!无法获取图片数据?");
}
}));
}
  • 打赏
  • 举报
回复
我写的这个方法在文章插图上有缺憾,在网上批量抓图批量保存硬盘上却是手到擒来的,只要再加上一些语句就能实现。
  • 打赏
  • 举报
回复
(?i)<img[^>]*?src=(['""])(?<imgUrl>[^'""]+?)\1[^>]*?>
  • 打赏
  • 举报
回复
嗯,是这样的,我做了个收集资料的软件自己用的,有些资料有图片,想复制内容包括图片同时复制,用正则取出图片网址放在RichTextBox控件另存,6楼正则可以用,就是还有错误弹出,就是这个/u/ui/images/blank.gif无效网址,能解决就好了。代码可以给大家共享,如下:

this.Invoke(new Action(() =>
{
IDataObject 粘贴数据 = Clipboard.GetDataObject();
Object 网址 = 粘贴数据.GetData(DataFormats.Html);
List<string> 图片集 = new List<string>();
Regex 图片网址 = new Regex(@"(?i)<img[^>]*?src=(['""])(?<imgUrl>[^'""]+?\.(jpe?g|gif|png|bmp|tiff|pcx|tga|exif|fpx|svg|psd|cdr|pcd|dxf|ufo|eps|ai|raw))\1[^>]*?>", RegexOptions.IgnoreCase);
if (网址 != null)
{
MatchCollection 集合 = 图片网址.Matches(网址.ToString());
foreach (Match 元素 in 集合)
图片集.Add(元素.Groups["imgUrl"].Value);
foreach (string 图址 in 图片集)
{
Image 获取网络图片 = Image.FromStream(WebRequest.Create(图址).GetResponse().GetResponseStream());
Clipboard.SetImage(获取网络图片); if (粘贴数据.GetDataPresent(DataFormats.Bitmap)) 富文本编辑.Paste();
}
}
}));

这种方法能把图片添加在文章最后,然后通过移动或剪切图片到正确位置,虽说有些不便,但还是差强人意可以编辑,何况文字内容有时也需要整理后保,这个方法最大的遗憾就是图片不能粘贴在原位;
如果谁有方法能把图片粘贴在原位就完美了,谁有代码的话拿出来共享一下,还有看看我这个代码是否可以优化。
  • 打赏
  • 举报
回复
你应该告诉我们你要匹配的内容都有怎样的格式,然后你想匹配出怎样的格式

还是看看正则表达式吧http://blog.csdn.net/lxcnn/article/category/538256
  • 打赏
  • 举报
回复
能推荐正则表达式生成器使用教程?去学学
  • 打赏
  • 举报
回复
出现/u/ui/images/blank.gif无效网址能解决不?
  • 打赏
  • 举报
回复
@"(?i)<img[^>]*?src=(['""])(?<imgUrl>http://[^'""]+?\.(jpe?g|gif|png|bmp))\1[^>]*?>"
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
你大概是想要以bmp,jpg,jpeg,png,gif为结尾的url吧?


@"(?i)<img[^>]*?src=(['""])(?<imgUrl>[^'""]+?\.(jpe?g|gif|png|bmp))\1[^>]*?>"
[/Quote]
出现/u/ui/images/blank.gif无效网址了。
  • 打赏
  • 举报
回复
你大概是想要以bmp,jpg,jpeg,png,gif为结尾的url吧?


@"(?i)<img[^>]*?src=(['""])(?<imgUrl>[^'""]+?\.(jpe?g|gif|png|bmp))\1[^>]*?>"
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
全选复制本页做测试,出现http://counter.csdn.net/pv.aspx?id=185网址,你试看。
[/Quote]
对啊,没错啊

<img alt="" src="http://counter.csdn.net/pv.aspx?id=185" border="0" width="0" height="0" style="display: none" />

src就是http://counter.csdn.net/pv.aspx?id=185
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
网址有错误吧
[/Quote]
全选复制本页做测试,出现http://counter.csdn.net/pv.aspx?id=185网址,你试看。
  • 打赏
  • 举报
回复
网址有错误吧
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
(?i)<img[^>]*?src=(['""])(?<imgUrl>[^'""]+?)\1[^>]*?>
[/Quote]
复制本页出行http://counter.csdn.net/pv.aspx?id=185网址,还有正确的没?
课程目标:学习Java语言中字符串相关的知识、字符编码常识和正则表达式的使用,并完成案例前导课程:《Java工程师必学系列课程》前4部课程内容:本课程是《Java工程师必学系列课程》的第5部分,主要讲解Java语言中字符串相关知识、字符编码常识和正则表达式的使用。本课程涉及的主要内容可以分为四部分:一、String、StringBuffer和StringBuilder类基本常识、基本原理和使用技巧二、字符编码常识三、Java语言正则表达式的详细语法和使用技巧四、实战案例课程说明:在开发Java程序的过程中,最常用的类莫过于字符串相关的类。可以毫不夸张的说,任何一个Java程序,都离不开对字符串保存和处理。很多学员对字符串的理解只是处于比较粗浅的阶段。殊不知,如果对字符串处理的不好,会影响到软件的运行效率。本课程专门讲解字符串相关的知识,将从字符串的存储方式、底层的运行方式等各方面深入讲解其中的原理和技巧。此外,对字符串进行更高级的处理,又要用到正则表达式的相关知识。正则表达式广泛应用于各种与字符串处理相关的场合。它是一套独立的语言系统,经过几十年的完善和发展,现在已经非常的强大,并且形成了国际标准。各种高级编程语言,都实现了自己的表达式引擎。本课程详细的讲解了Java语言中正则表达式的语法和使用技巧。掌握了正则表达式,对编程水平的提高有非常大的帮助!同时,本课程在最后一部分,安排了非常精彩的、完整的实战案例,通过实战的形式切实帮助学员提高解决具体问题的能力!预期效果:认真学习完本课程,学员可以掌握字符串处理及正则表达式相关的系统知识,并能提高实际的编码水平。环境配置要求:学习本课程需安装JDK1.8或更高版本的JDK,以便程序能正确运行,建议使用IntelliJ IDEA 2019.1.2或更高版本的开发工具。    因有合作协议约束,《穆哥学堂》只提供PDF版本的课件!

110,539

社区成员

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

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

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