Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么是正确的VIM regexp来搜索get=而不是==?_Regex_Vim - Fatal编程技术网

什么是正确的VIM regexp来搜索get=而不是==?

什么是正确的VIM regexp来搜索get=而不是==?,regex,vim,Regex,Vim,在以下代码中: a = b = c == 1 我只想匹配前两个=,但不想匹配最后的= 我认为模式\可以工作,因为\匹配单词的开头,而code\>匹配单词的结尾。但事实并非如此。这个模式有什么问题,正确的模式是什么?这个正则表达式应该可以: [^=]=[^=] 如果您想在行首或行尾匹配单个=,它将中断-但我认为这不是您的模式的问题。vim支持lookarounds,因此您可以在=。这将只匹配行开始或结束处所需的=和偶数= \(=\)\@<!=\(=\)\@! \(=\)\@您不能使用\

在以下代码中:

a = b = c == 1
我只想匹配前两个=,但不想匹配最后的=


我认为模式
\
可以工作,因为
\
匹配单词的开头,而code\>匹配单词的结尾。但事实并非如此。这个模式有什么问题,正确的模式是什么?

这个正则表达式应该可以:

[^=]=[^=]

如果您想在行首或行尾匹配单个
=
,它将中断-但我认为这不是您的模式的问题。

vim支持lookarounds,因此您可以在=。这将只匹配行开始或结束处所需的=和偶数=

\(=\)\@<!=\(=\)\@!

\(=\)\@您不能使用
\
,因为通常,等号字符是而不是关键字字符。你可以用
:set iskeyword+=
来解决这个问题,但这可能会对导航和语法高亮显示产生副作用。

如果
=
是行的开头,这将不起作用。正在寻找使锚正常工作的方法。谢谢。这是可行的,但是锚有什么问题?大概他们应该做同样的事情?@me2单词边界(
\
)匹配单词的开头和结尾。我认为单词边界是一个字符,它与一个具有不同单词状态的字符相邻。例如,在
a=
中,
a
将是
=
的单词边界。在
==
中,这仍然是一个完整的单词。在这样简单的情况下,您不必使用组<代码>=\@同样有效。@ZyX感谢您的澄清;我不想在没有团队的情况下尝试;我只看到了groups的例子,我还想知道为什么
\b=\b
不起作用。。。任何人?
\
定义由
'iskeyword'
选项定义的“关键字字符”组成的单词<代码>=
不属于
'iskeyword'
\b=\b不匹配,因为
=
不是word