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