如何匹配尖括号>但不是>>在vim中正则表达式搜索
我已成功匹配 <
但没有在 <
前面(否定后向断言)或后面(否定前瞻断言),但是
<\@>!<<\@!
当我尝试匹配单个>
排除>>
以下表达式不起作用
>\@>!>>\@!
为什么?我应该如何进行搜索?
I had successfully matched <
but not preceded (negative look-behind assertion) or followed (negative look-ahead assertion) by <
by
<\@>!<<\@!
However while I tried to match a single >
excluding >>
the following expression does not work
>\@>!>>\@!
Why? How should I make the search?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您的
<\@>!<<<\@!
正则表达式:<\@>!
lireraly 匹配<\@>!
;我认为你的意思是<\@
<
匹配<
<\@!
如果<
在当前位置不匹配,则与零宽度匹配它适用于
<\@。
否定查找后面断言的语法是
(atom)\@,其中
(atom)
是您不希望匹配的内容。在本例中,这是<
,因此是<\@。
否定前瞻断言的语法是
(atom)\@!
,其中(atom)
是您不希望匹配的内容。在本例中,它是<
,因此是<\@!
。在 PCRE 中,正则表达式为:
另一个正则表达式 (
>\@>!>>\@!
) 有效。Your
<\@>!<<\@!
regex:<\@>!
lireraly matches<\@>!
; I think you meant<\@<!
<
matches the<
<\@!
matches with zero-width if<
doesn't match at the current positionIt works with
<\@<!<<\@!
.The syntax for negative look behind assertions is
(atom)\@<!
, where(atom)
is the thing you don't want to be matched. In this case this is<
, hence the<\@<!
.The syntax for negative look ahead assertions is
(atom)\@!
, where(atom)
is the thing you don't want to be matched. In this case it's the<
, hence the<\@!
.In PCRE the regex would be:
The other regex (
>\@>!>>\@!
) works.