2011-04-03 57 views
0

如何轉換此正則表達式以僅在src = *中搜索,而不是所有以http開頭並以jpg,png,gif結尾的鏈接?另外我想獲得https圖片。 謝謝!非常簡單的正則表達式編輯

preg_match('!http://.+\.(?:jpe?g|png|gif)!Ui' , $content , $matches); 
+1

*(相關)* [最佳方法解析HTML](http://stackoverflow.com/questions/3577641/best-methods-to-parse-html/3577662#3577662) – Gordon 2011-04-03 21:40:16

+1

而對於喜劇價值.. 。http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 – 2011-04-03 21:42:56

+0

嗨,感謝信息,但我沒有要求這 – EnexoOnoma 2011-04-03 21:47:30

回答

0

前綴帶有負斷言你的正則表達式來篩選出共同出現次數:

(?<!src=["\']|src=) 

「前綴」是指在您的!之後和之前https?://..

preg_match('!(?<!src=["\']|src=)http://.+\.(?:jpe?g|png|gif)!Ui' , $content , $matches); 
+0

您好 'preg_match_all('( EnexoOnoma 2011-04-03 22:16:03

+0

我在評論中沒有提供輔導。 – mario 2011-04-03 22:30:16

+0

你能編輯我的代碼嗎? – EnexoOnoma 2011-04-03 22:32:38

0

你可以試試這一個,映入只有SRC標籤,並選擇圖片網址:

<img[^>]+src\s*=\s*['\"]([^'\"]+)['\"][^>]*> 
+0

你好! '$ pattern =「] + src \ s * = \ s * ['\」]([^'\「] +)[''」] [^>] *>「;' 'preg_match_all模式,$內容,$過濾);' 我得到這個錯誤:警告:preg_match_all()[function.preg-match-all]:未知修飾符']' – EnexoOnoma 2011-04-03 21:58:23

+0

@Punkis:你需要包裹正則表達式在分隔符。 – ridgerunner 2011-04-03 22:04:30

+0

它得到 EnexoOnoma 2011-04-03 22:34:22