急求获取文章内容所有的图片的正则表达式

showIT 2012-03-26 11:24:00
因为正则不是很熟,特请大侠们看下这个正则应该怎么写!
<img src="http://www.inluxe.cn/assets/shared/images/grey0.gif" original="/uploads/news/2012/03/salvatore-ferragamo-02_1.jpg">
<div class="box page_details">
<h4>最新新闻 Latest News</h4>
<div class="mainleft ">
<h1>菲拉格慕 Salvatore Ferragamo 盛大举行 Signorina 香氛发布会</h1>
<p style="margin-top:-20px; margin-bottom:20px;">发布日期:2012/3/25</p>
<div class="details h20 lazyload">
<p>
<p>当地时间3月20日,菲拉格慕(Salvatore Ferragamo)为新款香氛Signorina在纽约举行盛大发布会。当晚发布会现场星光璀璨,众星云集,包括Emma Roberts、Annasophia Robb、Courtney Love、Kate Mara、Bianca Balti、the Brant Brothers等在内的明星均盛装亮相助阵。</p>
<p>
<img alt="Salvatore Ferragamo 02 1" src="http://www.inluxe.cn/assets/shared/images/grey.gif" original="/uploads/news/2012/03/salvatore-ferragamo-02_1.jpg">
</p>
</div>
<img src="http://www.inluxe.cn/assets/shared/images/grey2.gif" original="/uploads/news/2012/03/salvatore-ferragamo-02_1.jpg">

是这样的,因为里面文章一共有三个图片地址,我自己有写这个正则:<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg]))[\'|\"].*?[\/]?>,但是这个是获取当前页所有的图片地址,也即是说上面一共有三个图片地址,他都获取到了,但是我的要求仅仅是获取上面内容<div class="box page_details">标签里面的图片:也就是仅仅只获取“<img alt="Salvatore Ferragamo 02 1" src="http://www.inluxe.cn/assets/shared/images/grey.gif" original="/uploads/news/2012/03/salvatore-ferragamo-02_1.jpg">”这个图片的地址,希望大侠们帮帮忙,给点意见。
...全文
242 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
EnForGrass 2012-03-26
  • 打赏
  • 举报
回复

string patern = "(?is)<div\\s*class=\"box page_details\"\\s*>(.*)?(?<img><[img|IMG].*?src=[\'|\"](.*?(?:[.gif|.jpg]))[\'|\"].*?[/]?>)(.*)?</div>";
string tempStr = File.ReadAllText(@"C:\3.txt", Encoding.GetEncoding("GB2312"));//tempStr 就是你的字符串
Regex re = new Regex(patern);
List<string> lists = new List<string>();
MatchCollection sr = re.Matches(tempStr);

foreach (Match me in sr)
{
lists.Add(me.Groups["img"].Value);//结果在lists
}
porschev 2012-03-26
  • 打赏
  • 举报
回复


static void Main(string[] args)
{
string str = @"<img src=""http://www.inluxe.cn/assets/shared/images/grey0.gif"" original=""/uploads/news/2012/03/salvatore-ferragamo-02_1.jpg"">
<div class=""box page_details"">
<h4>最新新闻 Latest News</h4>
<div class=""mainleft "">
<h1>菲拉格慕 Salvatore Ferragamo 盛大举行 Signorina 香氛发布会</h1>
<p style=""margin-top:-20px; margin-bottom:20px;"">发布日期:2012/3/25</p>
<div class=""details h20 lazyload"">
<p>
<p>当地时间3月20日,菲拉格慕(Salvatore Ferragamo)为新款香氛Signorina在纽约举行盛大发布会。当晚发布会现场星光璀璨,众星云集,包括Emma Roberts、Annasophia Robb、Courtney Love、Kate Mara、Bianca Balti、the Brant Brothers等在内的明星均盛装亮相助阵。</p>
<p>
<img alt=""Salvatore Ferragamo 02 1"" src=""http://www.inluxe.cn/assets/shared/images/grey.gif"" original=""/uploads/news/2012/03/salvatore-ferragamo-02_1.jpg"">
</p>
</div>
<img src=""http://www.inluxe.cn/assets/shared/images/grey2.gif"" original=""/uploads/news/2012/03/salvatore-ferragamo-02_1.jpg"">
";

Regex re = new Regex(@"(?is)<div\s*class=""box page_details"">.*?(<img\s*alt=""[^""]+""\s*src=""([^""]+)""\s*original=""([^""]+)"">).*?</div>", RegexOptions.IgnoreCase);
Match ma = re.Match(str);

Console.WriteLine(ma.Groups[1].Value);
//Groups1结果:<img alt="Salvatore Ferragamo 02 1" src="http://www.inluxe.cn/assets/shared/images/grey.gif" original="/uploads/news/2012/03/salvatore-ferragamo-02_1.jpg">
Console.WriteLine(ma.Groups[2].Value);
//Group2结果:http://www.inluxe.cn/assets/shared/images/grey.gif
Console.WriteLine(ma.Groups[3].Value);
//group3结果:/uploads/news/2012/03/salvatore-ferragamo-02_1.jpg
Console.WriteLine();


Console.ReadLine();

}


porschev 2012-03-26
  • 打赏
  • 举报
回复


Regex re = new Regex(@"(?is)(?<=<div\s*class=""box page_details"">.*?<img\s*alt=""[^""]+""\s*src="")[^""]+(?="".*?</div>)", RegexOptions.None);
string str = re.Match("你要提取的字符串").Value;

//结果:http://www.inluxe.cn/assets/shared/images/grey.gif


EnForGrass 2012-03-26
  • 打赏
  • 举报
回复
(?is)<div\s*class="box page_details">(.*)(?<img><[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg]))[\'|\"].*?[\/]?>)(.*)</div>

你取m.Group["img"].Value就行了

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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