摘要:定義貪婪模式匹配盡可能多的字符非貪婪模式匹配盡可能少的字符在的正則表達(dá)式中,通過在修飾匹配次數(shù)的符號后面加一個,即非貪婪模式,默認(rèn)情況下是貪婪模式。
定義
貪婪模式:匹配盡可能多的字符
非貪婪模式:匹配盡可能少的字符
在Java的正則表達(dá)式中,通過在修飾匹配次數(shù)的符號后面加一個?,即非貪婪模式,默認(rèn)情況下是貪婪模式。
表示匹配次數(shù)的符號有:
.? # 任意字符匹配1次或0次 .* # 任意字符匹配0次或多次 .+ # 任意字符匹配1次或多次 .{n} # 任意字符匹配n次 .{n,} # 任意字符匹配至少n次 .{n,m} # 任意字符匹配至少n次,至多m次代碼
public static void main(String[] args) { String input = "aaaabc"; String regex1 = "a{2,3}"; // 貪婪模式 Pattern p1 = Pattern.compile(regex1); Matcher m1 = p1.matcher(input); while (m1.find()) { System.out.println(m1.group()); } System.out.println("------------------"); String regex2 = "a{2,3}?"; // 非貪婪模式 Pattern p2 = Pattern.compile(regex2); Matcher m2 = p2.matcher(input); while (m2.find()) { System.out.println(m2.group()); } }
輸出:
aaa ------------------ aa aa原文鏈接
https://segmentfault.com/a/11...
?
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/70613.html
摘要:學(xué)習(xí)正則表達(dá)式也是如此,循序漸進,方能厚積薄發(fā)。概念分組捕獲是指將想要匹配的正則表達(dá)式用小括號括起來,然后與限定符組合使用,可以連續(xù)匹配符合規(guī)則的字符串。 正則表達(dá)式是一個非常有用的用來匹配驗證字符串的工具。很多人覺得正則表達(dá)式規(guī)則繁多,學(xué)了也會忘記,不如等到需要使用的時候再去查閱即可。這樣的觀點也無可厚非,不過我曾經(jīng)看到過一個絕妙的關(guān)于閱讀的比喻,閱讀就像是將竹簍浸入到水里面,雖然撈...
摘要:舉例一使用這個正則,打印結(jié)果為使用這個正則,打印結(jié)果為舉例二打印結(jié)果如下過濾標(biāo)簽?zāi)愫妹利惖纳虾O朕D(zhuǎn)化成你好,美麗的上海如果后面加,就會進入非貪婪模式。如果后面不加,就會進入貪婪模式,結(jié)果為上海。你好美麗的上海。 1.創(chuàng)建一個正則表達(dá)式 方法一:使用一個正則表達(dá)式字面量,其由包含在斜杠之間的模式組成。 var reg1 = /a/; var reg2 = /ab+c/; 方法二:調(diào)用Re...
摘要:舉例一使用這個正則,打印結(jié)果為使用這個正則,打印結(jié)果為舉例二打印結(jié)果如下過濾標(biāo)簽?zāi)愫妹利惖纳虾O朕D(zhuǎn)化成你好,美麗的上海如果后面加,就會進入非貪婪模式。如果后面不加,就會進入貪婪模式,結(jié)果為上海。你好美麗的上海。 1.創(chuàng)建一個正則表達(dá)式 方法一:使用一個正則表達(dá)式字面量,其由包含在斜杠之間的模式組成。 var reg1 = /a/; var reg2 = /ab+c/; 方法二:調(diào)用Re...
摘要:舉例一使用這個正則,打印結(jié)果為使用這個正則,打印結(jié)果為舉例二打印結(jié)果如下過濾標(biāo)簽?zāi)愫妹利惖纳虾O朕D(zhuǎn)化成你好,美麗的上海如果后面加,就會進入非貪婪模式。如果后面不加,就會進入貪婪模式,結(jié)果為上海。你好美麗的上海。 1.創(chuàng)建一個正則表達(dá)式 方法一:使用一個正則表達(dá)式字面量,其由包含在斜杠之間的模式組成。 var reg1 = /a/; var reg2 = /ab+c/; 方法二:調(diào)用Re...
摘要:程序員的正則表達(dá)式,醫(yī)生的處方和道士的鬼畫符,都是利器。其實,正則表達(dá)式是一門語言,有自己獨特的語法,還擁有自己的解釋器。但是,如果正則表達(dá)式是動態(tài)的,是根據(jù)變量來定義的,那么,只能使用第二種構(gòu)造函數(shù)的方式。 前言 作為一個程序員,要出去裝逼,手中必備的技能就是正則表達(dá)式。程序員的正則表達(dá)式,醫(yī)生的處方和道士的鬼畫符,都是利器。 在js中,很多的場景需要去使用到它(畢竟,js剛剛誕生的...
閱讀 4069·2021-09-06 15:00
閱讀 2237·2019-08-30 15:53
閱讀 3352·2019-08-23 16:44
閱讀 1013·2019-08-23 15:19
閱讀 1467·2019-08-23 12:27
閱讀 4268·2019-08-23 11:30
閱讀 668·2019-08-23 10:33
閱讀 435·2019-08-22 16:05