在做采集程序時,通常使用正則表達式來獲取網(wǎng)頁中的內(nèi)容,而且網(wǎng)頁中的內(nèi)容通過有很多html的標簽嵌套,這時候就需要用到平衡組的知識,下面就是平衡組的寫法,根據(jù)具體應(yīng)用進行相應(yīng)的改變。
< #最外層的左括號
[^<>]* #最外層的左括號后面的不是括號的內(nèi)容
(
(
(?'Open'<) #碰到了左括號,在黑板上寫一個"Open"
[^<>]* #匹配左括號后面的不是括號的內(nèi)容
)+
(
(?'-Open'>) #碰到了右括號,擦掉一個"Open"
[^<>]* #匹配右括號后面不是括號的內(nèi)容
)+
)*
(?(Open)(?!)) #在遇到最外層的右括號前面,判斷黑板上還有沒有沒擦掉的"Open";如果還有,則匹配失敗
> #最外層的右括號
平衡組的一個最常見的應(yīng)用就是匹配HTML,下面這個例子可以匹配嵌套的<div>標簽:
<div[^>]*>[^<>]*(((?'Open'<div[^>]*>)[^<>]*)+((?'-Open'</div>)[^<>]*)+)*(?(Open)(?!))</div>.