這次帶給大家正規的回溯引用backreference如何使用,正則回溯引用backreference使用的注意事項有哪些,下面就是實戰案例,一起來看一下。
在所有例子中正規表示式匹配結果包含在原始文字中的【和】之間,有的例子會使用Java來實現,如果是java本身正則表達式的用法,會在對應的地方說明。所有java例子都在JDK1.6.0_13下測試通過。
一、問題引入
一個在HTML頁面中符合標題標籤(H1—H6)的問題:
文字:
<body> <h1>Welcome to my page</H1> Content is pided into twosections:<br> <h2>Introduction</h2> Information about me. <H2>Hobby</H2> Information about my hobby. <h2>This is invalid HTML</h3> </body>
正規表示式:<[hH][1-6]>.*?[hH][1-6]>
#結果:
分析:模式<[hH][1-6]>符合任何一級標題的開始標籤,而且不區分大小寫,在這個例子中它匹配到了
二、回溯引用符合
回溯引用是指模式的後半部引用在前半部中定義的子表達式。 至於子表達式的使用、分割和引用,在前面已經介紹過了。現在來解決前面的範例:
文字:
<body> <h1>Welcome to my page</H1> Content is pided into twosections:<br> <h2>Introduction</h2> Information about me. <H2>Hobby</H2> Information about my hobby. <h2>This is invalid HTML</h3> </body>
正規表示式:<[hH]([1-6])>.*?[ hH]\1>
結果:
分析:首先匹配開始標題標籤的模式<[hH]([1-6]) >,使用括號把[1-6]做為子表達式,而匹配結束標題標籤模式為[hH]\1>,其中\1表示引用第一個子表達式,即([1 -6]),如果([1-6])匹配到的是1,那\1也匹配到1,如果匹配到2,那\1也匹配到2,所以最後一個無效的標題標籤就不會被匹配到了。
相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
推薦閱讀:
####################################################。 ######以上是正規的回溯引用backreference如何使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!