在以下代码中:
a = b = c == 1
我想只匹配前两个=,而不是最后的==。
我认为模式\<=\>
会起作用,因为\<
匹配单词的开头,\>
匹配结尾。但事实并非如此。这种模式有什么问题,正确的模式是什么?
答案 0 :(得分:5)
vim支持外观,因此你可以在=周围使用负向后观和负向前瞻。这将仅匹配行的开头或结尾处的所需=和偶数=。
\(=\)\@<!=\(=\)\@!
答案 1 :(得分:4)
您无法使用\<=\>
,因为通常情况下,等号字符不 关键字字符。您可以使用:set iskeyword+==
修复此问题,但这可能会导致导航和语法突出显示的副作用。
答案 2 :(得分:0)
这个正则表达式应该有效:
[^=]=[^=]
如果您想在开头或结尾处匹配单个=
,它会中断 - 但我认为这不是您的模式的问题。