摘要:定義貪婪模式匹配盡可能多的字符非貪婪模式匹配盡可能少的字符在的正則表達式中,通過在修飾匹配次數的符號后面加一個,即非貪婪模式,默認情況下是貪婪模式。
定義
貪婪模式:匹配盡可能多的字符
非貪婪模式:匹配盡可能少的字符
在Java的正則表達式中,通過在修飾匹配次數的符號后面加一個?,即非貪婪模式,默認情況下是貪婪模式。
表示匹配次數的符號有:
</>復制代碼
.? # 任意字符匹配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...
?
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/70613.html
摘要:舉例一使用這個正則,打印結果為使用這個正則,打印結果為舉例二打印結果如下過濾標簽你好美麗的上海想轉化成你好,美麗的上海如果后面加,就會進入非貪婪模式。如果后面不加,就會進入貪婪模式,結果為上海。你好美麗的上海。 1.創建一個正則表達式 方法一:使用一個正則表達式字面量,其由包含在斜杠之間的模式組成。 var reg1 = /a/; var reg2 = /ab+c/; 方法二:調用Re...
摘要:舉例一使用這個正則,打印結果為使用這個正則,打印結果為舉例二打印結果如下過濾標簽你好美麗的上海想轉化成你好,美麗的上海如果后面加,就會進入非貪婪模式。如果后面不加,就會進入貪婪模式,結果為上海。你好美麗的上海。 1.創建一個正則表達式 方法一:使用一個正則表達式字面量,其由包含在斜杠之間的模式組成。 var reg1 = /a/; var reg2 = /ab+c/; 方法二:調用Re...
摘要:舉例一使用這個正則,打印結果為使用這個正則,打印結果為舉例二打印結果如下過濾標簽你好美麗的上海想轉化成你好,美麗的上海如果后面加,就會進入非貪婪模式。如果后面不加,就會進入貪婪模式,結果為上海。你好美麗的上海。 1.創建一個正則表達式 方法一:使用一個正則表達式字面量,其由包含在斜杠之間的模式組成。 var reg1 = /a/; var reg2 = /ab+c/; 方法二:調用Re...
摘要:程序員的正則表達式,醫生的處方和道士的鬼畫符,都是利器。其實,正則表達式是一門語言,有自己獨特的語法,還擁有自己的解釋器。但是,如果正則表達式是動態的,是根據變量來定義的,那么,只能使用第二種構造函數的方式。 前言 作為一個程序員,要出去裝逼,手中必備的技能就是正則表達式。程序員的正則表達式,醫生的處方和道士的鬼畫符,都是利器。 在js中,很多的場景需要去使用到它(畢竟,js剛剛誕生的...
閱讀 3845·2021-09-06 15:00
閱讀 2178·2019-08-30 15:53
閱讀 3286·2019-08-23 16:44
閱讀 950·2019-08-23 15:19
閱讀 1397·2019-08-23 12:27
閱讀 4197·2019-08-23 11:30
閱讀 590·2019-08-23 10:33
閱讀 374·2019-08-22 16:05