简单的正则表达式提取img src属性的值

时间:2016-11-13 13:57:31

标签: regex

我尝试用Rubular

创建一个简单的正则表达式

我想用img id捕获所有url(src)" zoom-product-image" img_b.jpg匹配的地方。

我试过这个正则表达式

/ id =" zoom-product-image" SRC ="(。*?)"

这将给我留下3场比赛。

/product-images/545442_img_a.jpg

/product-images/5453112_img_b.jpg

/product-images/595512_img_c.jpg

但我只需匹配包含img_b.jpg的女巫,所以我试图使用这个正则表达式:

/ id =" zoom-product-image" SRC ="(?* _ img_b.jpg)"

但这不起作用

HTML测试字符串:

<li class=""><img id="zoom-product-image" src="/product-images/545442_img_a.jpg" alt="Red img"> </li><li><img id="zoom-product-image" src="/product-images/5453112_img_b.jpg" alt="Green img"></li><li><img id="zoom-product-image" src="/product-images/595512_img_c.jpg" alt="Blue img"></li>

2 个答案:

答案 0 :(得分:1)

可能不是最好的解决方案,但它有效

/id="zoom-product-image" src="([^"]*_img_b\.jpg)"/g

[^"]*表示 - 除" 0次或更多次

之外的任何内容

答案 1 :(得分:1)

这似乎符合您的要求:

 id="zoom-product-image" src="([^_]*_img_b\.jpg)

打破它:

  • id =“zoom-product-image”src =“:匹配以...开头的所有内容 这个字符串
  • (:开始捕获
  • [^ _] *:匹配0个或更多不是_
  • 的字符
  • _img_b.jpg:匹配此字符串
  • ):结束捕获