如何通過正則表達式獲取img標簽的src屬性


如何通過正則表達式獲取img標簽的src屬性

1、部分正則語法介紹

\s    匹配任何空白字符,包括空格、制表符、換頁符等等。等價於 [ \f\n\r\t\v]。

?    匹配前面的子表達式零次或一次,或指明一個非貪婪限定符。要匹配 ? 字符,請使用 \?。

|    指明兩項之間的一個選擇。要匹配 |,請使用 \|。

.     匹配除換行符 \n 之外的任何單字符。要匹配 . ,請使用 \. 。

g   全文搜索

i    忽略大小寫

詳情可參考 http://www.runoob.com/regexp/regexp-syntax.html

2、match 方法介紹

詳情參考:http://www.w3school.com.cn/jsref/jsref_match.asp

3、使用正則表達式獲取所有 img 標簽

從圖中可以看出,使用正則表達式  /<img\b.*?(?:\>|\/>)/gi  可以將字符串中的 img 標簽進行匹配,並放到一個新數組中

關於  正則表達式  /<img\b.*?(?:\>|\/>)/gi 的解釋

首先 標簽的開始是 <  

其后緊跟着 img

故使用   /<img\b 進行匹配

.*?  則對字符串進行最小匹配(下一個匹配(?:\>|\/>)出現時,.* 就失效)

img 標簽結尾 使用 > 或者 /> ,使用 (?:\>|\/>) 進行匹配

注:圓括號()會有一個副作用,是相關的匹配會被緩存,此時可用?:放在第一個選項前來消除這種副作用。

4、獲取 img 標簽對應的 src 屬性



 

從圖中可以看出,使用正則表達式 /\bsrc\b\s*=\s*[\'\"]?([^\'\"]*)[\'\"]?/i  可以將字符串中的 img 標簽進行匹配,並放到一個新數組中,數組下標為1,就是所需要的src屬性

關於  正則表達式  /\bsrc\b\s*=\s*[\'\"]?([^\'\"]*)[\'\"]?/i  的解釋

 

 

\bsrc\b 是把src當成一個單詞進行匹配

\s*=\s* 則是匹配 = 前后是否有空格(* 為0個以上,包括0)

[\'\"]?  進行最小匹配,src 一般用單引號或雙引號包裹

([^\'\"]*)  匹配不上單引號和雙引號的字符

注:這里沒有使用 g 進行全局匹配,是因為 img 標簽只有一個 src ,匹配到就可以結束了

5、總結

使用   /<img\b.*?(?:\>|\/>)/gi 對一個字符串進行全文匹配,獲取所需要的 img 標簽

使用   /\bsrc\b\s*=\s*[\'\"]?([^\'\"]*)[\'\"]?/i   對一個 img 標簽進行匹配,獲取所對應的 src 屬性

注:因為個人書寫手法的不一致,實際過程中坑你需要去除 \b \s 等一些特性限制,需根據實際需要進行修改

原文地址:http://www.cnblogs.com/ImCehnyx/p/7163691.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM