正则表达式 学习笔记3.4
生活随笔
收集整理的這篇文章主要介紹了
正则表达式 学习笔记3.4
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
第一段為合法html代碼,第二段為不合法html代碼。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> [^<]+匹配非<的任意多個字符 \\w+[^<]+</\\w+>; ? 開頭用來匹配開始tag 結尾用來匹配結束tag 中間用來匹配文本。 發現這個正則表達式,既能匹配合法,又能匹配不合法的。 因為匹配開始tag和結束tag的兩個子表達式,并沒有什么聯系,也就是說匹配的結束tag并不等于開始的tag 下面用反向引用在兩個子表示之間建立聯系: String?regex?=?"<(\\w+)>[^<]+</(\\1)>"; 運行結果: <h1>good,good</h1>能夠匹配正則:<(\w+)>[^<]+</(\1)> <h1>bad</h2>不能夠匹配正則:<(\w+)>[^<]+</(\1)> 對匹配開始tag的子表達式添加捕獲分組: <(\\w+) ? 在匹配結束tag的子表達式中,使用\1這個反向引用的功能: </(\\1)>引用之前的子表達式:(\\w+) 補充: 一些題外話;使用正則表達式替換的時候,也可以使用反向引用的功能。 例子: public?class?GeneralEvelent?{ public?static?void?main(String[]?args)?{ String?dupWords?=?"word?word"; String?dupWordRegex?=?"(\\w+)\\s+(\\1)"; System.out.println("替換之前:"+dupWords); System.out.println("替換之后:" +dupWords.replaceAll(dupWordRegex,?"$1")); } } 運行結果: 替換之前:word?word 替換之后:word 簡單的去掉重復單詞的例子 ?
dupWords.replaceAll(dupWordRegex,?"$1") ? $1按照java語言規定,這個特殊變量對應的是正則表達式中編號為1的分組所捕獲的字符串。 也就是說將兩個重復單詞的字符串,替換為單個重復單詞的字符串,這樣就去掉了一個重復單詞。 小結 ·量詞:規定之前元素出現的次數 ·*,+,? ·區間量詞:{min,max} ·量詞的局限:括號(...)的使用 ·括號的用途:多選分支 ·括號的用途:捕獲分組 ·括號的用途:反向引用 ?
正則表達式 學習筆記3 完!
轉載于:https://blog.51cto.com/jooben/317570
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的正则表达式 学习笔记3.4的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三类危险的TXT文件
- 下一篇: 【C++基础】时间类型详解(转)