正则问题

智者知已应修善业 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);

上面正则好像不太正确,不是图片的网址也存在,正确的是怎么写?
...全文
206 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网址,还有正确的没?

110,587

社区成员

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

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

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