最左端匹配原則

"最左端匹配原則"(Leftmost-first matching rule)是正則表達式中的一個匹配規則,它指的是在搜尋字元串時,正則表達式從左到右匹配,並且只會在字元串的開頭進行匹配。

例如,考慮正則表達式 abc 和字元串 xyzabcdef。根據最左端匹配原則,正則表達式只會嘗試在字元串的開頭匹配 abc,也就是說,它會嘗試匹配 abc 這個子字元串。因為 xyzabcdef 的開頭不是 abc,所以匹配失敗。

如果正則表達式中有元字元(例如 *, +, ?, {n}, {n,}, {n,m}),它們會按照它們在正則表達式中的順序從左到右被解析和應用。

例如,考慮正則表達式 ab*c 和字元串 abc。根據最左端匹配原則,* 會被應用於 b,這意味著 b 可以出現零次或多次。因為 ab 匹配了字元串的開頭,所以 * 不需要做任何匹配,因此 abc 匹配成功。

最左端匹配原則是許多正則表達式引擎的默認行為,但並不是所有引擎都遵循這個原則。有些引擎(如 Perl 正則表達式引擎)允許使用賦予(possessive)量詞來改變這種行為,使得量詞只在其右側的元素匹配後才放棄它們所擁有的匹配。