用 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。