簡體   English   中英

搜索get =但不是==的正確VIM正則表達式是什么?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM