新聞中心
這篇文章將為大家詳細(xì)講解有關(guān)正則表達(dá)式學(xué)習(xí)之回溯引用backreference的示例分析,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
創(chuàng)新互聯(lián)公司2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元合陽做網(wǎng)站,已為上家服務(wù),為合陽各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575
一、問題引入
一個(gè)在HTML頁面中匹配標(biāo)題標(biāo)簽(H1—H6)的問題:
文本:
Welcome to my page Content is divided into twosections:
Introduction
Information about me.Hobby
Information about my hobby.This is invalid HTML
正則表達(dá)式:<[hH][1-6]>.*?[hH][1-6]>
結(jié)果:
【
Welcome to my page】
Content is divided into twosections:
【Introduction
】
Information about me.
【Hobby
】
Information about my hobby.
【This is invalid HTML】
分析:模式<[hH][1-6]>匹配任何一級(jí)標(biāo)題的開始標(biāo)簽,而且不區(qū)分大小寫,在這個(gè)例子中它匹配到了
、,[hH][1-6]>匹配到了
、、;這里使用了懶惰型元字符來匹配標(biāo)簽中的文本,否則會(huì)匹配到從第一個(gè)開始標(biāo)簽到最后一下結(jié)束標(biāo)簽之間的內(nèi)容。但是從結(jié)果可以看出,有一個(gè)無效的標(biāo)簽也匹配上了,即,它們根本不能配對(duì)。要解決這個(gè)問題,就需要使用到回溯引用(backreference)。
二、回溯引用匹配
回溯引用是指模式的后半部分引用在前半部分中定義的子表達(dá)式。至于子表達(dá)式的使用、劃分和引用,在前面已經(jīng)介紹過了。現(xiàn)在來解決前面的例子:
文本:
Welcome to my page Content is divided into twosections:
Introduction
Information about me.Hobby
Information about my hobby.This is invalid HTML
正則表達(dá)式:<[hH]([1-6])>.*?[hH]\1>
結(jié)果:
【
Welcome to my page】
Content is divided into twosections:
【Introduction
】
Information about me.
【Hobby
】
Information about my hobby.
This is invalid HTML
分析:首先匹配開始標(biāo)題標(biāo)簽的模式<[hH]([1-6])>,使用括號(hào)把[1-6]做為子表達(dá)式,而匹配結(jié)束標(biāo)題標(biāo)簽?zāi)J綖?/[hH]\1>,其中\(zhòng)1表示引用第一個(gè)子表達(dá)式,即([1-6]),如果([1-6])匹配到的是1,那\1也匹配到1,如果匹配到2,那\1也匹配到2,所以最后一個(gè)無效的標(biāo)題標(biāo)簽就不會(huì)被匹配到了。
關(guān)于“正則表達(dá)式學(xué)習(xí)之回溯引用backreference的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
當(dāng)前標(biāo)題:正則表達(dá)式學(xué)習(xí)之回溯引用backreference的示例分析
本文地址:http://ef60e0e.cn/article/pccsog.html