貪婪模式又叫最大匹配,X?、X*、X+、X{n,}都是最大匹配,例如你要用“<.>”去匹配“a
貪婪模式(Greedy):
數量表示符預設為貪婪模式,除非另有表示。貪婪模式的表達式會一直匹配下去,直到無法匹配為止。如果你發現表達式匹配的結果與預期的不符,很有可能是因為——你以為表達式只會匹配前面幾個字符,而實際上它是貪婪模式,所以會一直匹配下去。
貪婪與非貪婪,加上?為非貪婪:
var s = '1023000'.match(/(\d+)(0*)/); s ["1023000", "1023000", ""] var s = '1023000'.match(/^(\d+)(0*)$/); s ["1023000", "1023000", ""] var s = '1023000'.match(/^(\d+?)(0*)$/); s ["1023000", "1023", "000"] var s = '1023000'.match(/(\d+?)(0*)/); s ["10", "1", "0"]
public void test51(){ String str = "aaa\"bbb\"ccc\"ddd\"eee"; System.out.println(str); str = str.replaceAll("\"(.*)\"", "@"); System.out.println(str); }
輸出:
aaa"bbb"ccc"ddd"eee aaa@eee
例二:
@Test public void test52(){ String str = "aaa\"bbb\"ccc\"ddd\"eee"; System.out.println(str); str = str.replaceAll("\"(.*?)\"", "@"); System.out.println(str); }
輸出:
aaa"bbb"ccc"ddd"eee aaa@ccc@eee
以上就是實例解析程式中正規表示式的貪婪模式匹配的內容,更多相關內容請注意的內容,更多相關內容請注意PHP中文網(www.php.cn)!