2016-11-13 48 views
0

我試圖做一個簡單的正則表達式與Rubular簡單的正則表達式來提取IMG SRC屬性的值

我想捕獲所有的網址(SRC)與IMG ID「放大產品形象」,其中img_b.jpg比賽。

我這個正則表達式試圖

/ID = 「放大產品形象」 SRC = 「(。*?)」

這將讓我有3場比賽。

/product-images/545442_img_a.jpg

/product-images/5453112_img_b.jpg

/product-images/595512_img_c.jpg

,但我需要只匹配包含img_b.jpg女巫所以我試圖用這個表達式:

/ID = 「放大產品形象」 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> 

回答

1

這似乎符合您的要求:

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

其分解:

  • ID = 「放大產品形象」 SRC =」:匹配所有與 這個字符串開頭
  • (:開始捕捉
  • [^ _] *:匹配0或多個字符不_
  • _img_b.jpg:匹配這個字符串
  • ):結束捕獲
1

可能不是最好的解決方案,但它的工作原理

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

[^"]*意味着 - 什麼,但" 0次或更多次

+1

爲了匹配文字'.'需要從[它的] [特殊含義]([regular-expressions.info/dot.html] –

+0

@bobblebubble轉義'\ .'好眼!感謝您指出了這一點 – Rai