前言
最近有一次想用正則表達式從網頁里面抓取一些東西出來,內容不復雜卻出現不少問題。下面話不多說,來一起看看詳細的介紹:
當我們用正則表達式去匹配一個標簽的首尾的時候,比如匹配 h1>hello world/h1>
中的 h1 的開始和閉合標簽
可能很多人會這樣寫
但是這樣真的可以嗎?
因為 * 匹配符是匹配前面一個字符的零到多個,而且它是貪婪匹配的
所以你得到的就會是下面的結果了。

顯然這并不是我們想要的,那么怎么把貪婪匹配換成最小匹配呢,
上面的寫法就可以了,如下圖:

其實原理應該很簡單,因為 ? 也是貪婪匹配,并且只能匹配0到1個,
所以它會匹配到第一個的時候就結束了,從而阻止了 * 的匹配多個的貪婪。
PS:這里再為大家提供2款非常方便的正則表達式工具供大家參考使用:
JavaScript正則表達式在線測試工具:http://tools.jb51.net/regex/javascript
正則表達式在線生成工具:http://tools.jb51.net/regex/create_reg
更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《JavaScript正則表達式技巧大全》、《JavaScript替換操作技巧總結》、《JavaScript查找算法技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》、《JavaScript中json操作技巧總結》、《JavaScript錯誤與調試技巧總結》及《JavaScript數學運算用法總結》
總結
以上就是這篇文章的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
您可能感興趣的文章:- JS中正則表達式全局匹配模式 /g用法詳解
- Java 正則表達式匹配模式(貪婪型、勉強型、占有型)
- 正則表達式惰性匹配模式(?)
- 正則表達式全局匹配模式(g修飾符)
- 正則表達式常見的4種匹配模式小結