正则匹配承兑的html,正则匹配闭合HTML标签(支持嵌套)
原標題:正則匹配閉合HTML標簽(支持嵌套)
任何復(fù)雜的正則表達式都是由簡單的子表達式組成的,要想寫出復(fù)雜的正則來,一方面需要有化繁為簡的功底,另外一方面,我們需要從正則引擎的角度去思考問題。關(guān)于正則引擎的原理,推薦《Mastering Regular Expression》中文名叫《精通正則表達式》。挺不錯的一本書。
OK,先確定我們要解決的問題——從一段Html文本中找出特定id的標簽的innerHTML。
這里面最大的難點就是,Html標簽是支持嵌套的,怎么能夠找到指定標簽相對應(yīng)的閉合標簽?zāi)?#xff1f;
我們可以這樣想,先匹配最前面的起始標簽,假設(shè)是div吧(
我之所以能夠這樣去思考,是因為我了解過正則的特性,我知道正則中的平衡組能夠?qū)崿F(xiàn)我剛才說的“堆棧”操作。所以,如果我們要編寫復(fù)雜正則表達式,需要對正則的一些高級特性至少有所了解,這樣我們思考問題才有個方向。
================================
匹配任意閉合HTML標簽的正則表達式:
[w]+)[^>]*?>((?[^>]*>)|>(?)|.*?)*>
如果只想匹配div標簽,可以使用下面的正則表達式:
div)[^>]*?>((?[^>]*>)|>(?)|.*?)*>
是的,你可以把div修改成任意你想要匹配的HTML標簽
如果想同時匹配多個HTML標簽,可以使用下面的正則表達式:
(div|span|h1))[^>]*?>((?[^>]*>)|>(?)|.*?)*>
你還可以繼續(xù)添加更多要匹配的標簽
如果想匹配包含ID的標簽,可以使用下面的正則表達式:
[w]+)[^>]*s[iI][dD]=(?["']?)footer(?(Quote)k)[^>]*?(/>|>((?[^>]*>)|>(?)|.*?)*>)
這個正則匹配任意id為footer的HTML標簽
本文不完全轉(zhuǎn)載了http://www.imkevinyang.com/2009/07/使用正則表達式匹配嵌套html標簽.html的內(nèi)容
來源:https://www.cnblogs.com/youring2/p/3836259.html
版權(quán)申明:本文來源于網(wǎng)友收集或網(wǎng)友提供,如果有侵權(quán),請轉(zhuǎn)告版主或者留言,本公眾號立即刪除。返回搜狐,查看更多
責(zé)任編輯:
總結(jié)
以上是生活随笔為你收集整理的正则匹配承兑的html,正则匹配闭合HTML标签(支持嵌套)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle自动还原,什么是oracle
- 下一篇: html定义一个集合,HTML标签属性集