[英]What is the correct VIM regexp to search to get = but not ==?
在以下代碼中:
a = b = c == 1
我想只匹配前兩個=,而不是最后的==。
我認為模式\\<=\\>
將起作用,因為\\<
匹配單詞的開頭, \\>
匹配結束。 但事實並非如此。 這種模式有什么問題,正確的模式是什么?
vim支持lookarounds,所以你可以使用負面的lookbehind和負面的前瞻來圍繞=。 這將僅匹配行的開頭或結尾處的期望=和偶數=。
\(=\)\@<!=\(=\)\@!
您不能使用\\<=\\>
因為通常,equals字符不是 關鍵字字符 。 您可以使用以下方法解決此問題:set iskeyword+==
,但這可能會導致導航和語法突出顯示的副作用。
這個正則表達式應該工作:
[^=]=[^=]
如果你想在行的開頭或末尾匹配single =
會破壞 - 但我認為這不是你的模式的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.