用 K 模擬可變長度的 lookbehind

一些正規表示式風格(Perl, PCRE, Oniguruma, Boost)僅支援固定長度的 lookbehinds,但提供\K 功能,可用於在模式開始時模擬可變長度的 lookbehind。當遇到\K,匹配的文字直到該點被丟棄,並且僅與模式匹配的部件中的文字以下 \K 保持在最終結果。

ab+\Kc

相當於:

(?<=ab+)c

一般來說,形式為:

(subpattern A)\K(subpattern B)

結束類似於:

(?<=subpattern A)(subpattern B)

除非 B 子模式可以匹配與 A 子模式相同的文字 - 你最終可能會得到微妙的不同結果,因為 A 子模式仍然使用文字,而不像真正的 lookbehind。