一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - 正則表達式 - Java 正則表達式匹配模式(貪婪型、勉強型、占有型)

Java 正則表達式匹配模式(貪婪型、勉強型、占有型)

2020-08-27 15:47正則之家 正則表達式

這篇文章主要介紹了Java 正則表達式匹配模式(貪婪型、勉強型、占有型),需要的朋友可以參考下

Greediness(貪婪型):最大匹配

X?、X*、X+、X{n,} 是最大匹配。例如你要用 “<.+>” 去匹配 “a<tr>aava </tr>abb”,也許你所期待的結果是想匹配 “<tr>”,但是實際結果卻會匹配到 “<tr>aava </tr>。

在 Greediness 的模式下,會盡量大范圍的匹配,直到匹配了整個內容,這時發現匹配不能成功時,開始回退縮小匹配范圍,直到匹配成功

?
1
2
3
String test = "a<tr>aava </tr>abb ";
String reg = "<.+>";
System.out.println(test.replaceAll(reg, "###"));

輸出:a###abb

Reluctant(Laziness)(勉強型):最小匹配
X??、X*?、X+?、X{n,}? 是最小匹配,其實X{n,m}?和X{n }?有些多余。在 Greediness 模式之后添加 ? 就成最小匹配。

在 Reluctant 的模式下,只要匹配成功,就不再繼續嘗試匹配更大范圍的內容

?
1
2
3
String test = "a<tr>aava </tr>abb ";
String reg = "<.+?>";
System.out.println(test.replaceAll(reg, "###"));

 

輸出:a###aava ###abb

與 Greediness 不同,Reluctant 模式下匹配了兩次內容

Possessive(占有型):完全匹配
X?+、X*+、X++、X{n,}+ 是完全匹配,在 Greediness 模式之后添加 + 就成完全匹配。

Possessive 模式與 Greediness 有一定的相似性,那就是都盡量匹配最大范圍的內容,直到內容結束,但與 Greediness 不同的是,完全匹配不再回退嘗試匹配更小的范圍。

?
1
2
3
4
5
6
String test = "a<tr>aava </tr>abb ";
String reg = "<.++>";
String test2 = "<tr>";
String reg2 = "<tr>";
System.out.println(test.replaceAll(reg, "###"));
System.out.println(test2.replaceAll(reg2, "###"));

輸出:a<tr>aava </tr>abb

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 69pao强力打造免费高速 | 特级夫妻大片免费在线播放 | 99在线观看国产 | 男人的天堂久久精品激情a 男人的天堂va | 91久久国产露脸精品 | aigao视频| 午夜福利体验免费体验区 | 色综合伊人色综合网站中国 | 日本高清中文字幕一区二区三区 | 人妖巨茎video | 午夜第九达达兔鲁鲁 | 日本男男gaygays| 国产美女做爰免费视频网址 | 2019理论韩国理论中文 | 欧美高清3dfreexxxx性 | 91麻豆在线观看 | 古装一级毛片 | 国产hd老头老太婆 | 三级黄色片在线观看 | 交换年轻夫妇HD中文字幕 | 国产欧美日韩不卡 | 99热这里只有精品国产在热久久 | 99久久精品国语对白 | 四虎在线视频免费观看 | 深夜免费看 | 久久亚洲精品AV成人无码 | 国内小情侣一二三区在线视频 | 啊好爽视频| 午夜理论片日本中文在线 | 91外围 | 亚洲酒色1314狠狠做 | 亚洲国产精品成人久久 | 小浪妇奶真大水多 | 丰满肥臀风间由美357在线 | 范冰冰上面好大下面好紧 | 99爱在线观看| 亚洲欧美午夜 | 无码乱人伦一区二区亚洲一 | 蜜桃破解版免费看nba | 亚洲天天综合网 | 大肥臀风间由美 中文字幕 大东北chinesexxxx露脸 |