日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

正则表达式 学习笔记3.4

發布時間:2023/12/19 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 正则表达式 学习笔记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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。