零宽匹配
vim中,要进行零宽匹配,可以使用特殊字符和元字符来表示零宽度断言(lookaround assertions)。
如下是常用的零宽度断言
正前瞻断言(Positive Lookahead Assertion)
匹配某个位置后面跟特定模式,不消耗字符
语法:@=
例子:要匹配foo后面是bar的情况,可以使用/foo@=bar/
负前瞻断言(Negative Lookahead Assertion)
匹配某个位置后面不跟着特定模式,不消耗字符
语法:@!
例子:要匹配foo后面不是bar的情况,可以使用/foo@!bar/
正后顾断言(Positive Lookbehind Assertion)
匹配某个位置前面跟着特定模式,不消耗字符
语法:@<=
例子:要匹配foo前面是bar的情况,可以使用/(bar)foo@<=/
负后顾断言(Negative Lookbehind Assertion)
匹配某个位置前面不跟着特定模式,不消耗字符
语法:@<!
例子:要匹配foo前面不是bar的情况,可以使用/(bar)foo@<!/
例子
如果要零宽匹配字符"<200b>",/%u200b