最左端匹配原則
"最左端匹配原則"(Leftmost-first matching rule)是正則表達式中的一個匹配規則,它指的是在搜尋字元串時,正則表達式從左到右匹配,並且只會在字元串的開頭進行匹配。
例如,考慮正則表達式 abc
和字元串 xyzabcdef
。根據最左端匹配原則,正則表達式只會嘗試在字元串的開頭匹配 abc
,也就是說,它會嘗試匹配 abc
這個子字元串。因為 xyzabcdef
的開頭不是 abc
,所以匹配失敗。
如果正則表達式中有元字元(例如 *
, +
, ?
, {n}
, {n,}
, {n,m}
),它們會按照它們在正則表達式中的順序從左到右被解析和應用。
例如,考慮正則表達式 ab*c
和字元串 abc
。根據最左端匹配原則,*
會被應用於 b
,這意味著 b
可以出現零次或多次。因為 ab
匹配了字元串的開頭,所以 *
不需要做任何匹配,因此 abc
匹配成功。
最左端匹配原則是許多正則表達式引擎的默認行為,但並不是所有引擎都遵循這個原則。有些引擎(如 Perl 正則表達式引擎)允許使用賦予(possessive)量詞來改變這種行為,使得量詞只在其右側的元素匹配後才放棄它們所擁有的匹配。