范围内的字符类 - vim
假设我有以下字符串:
This is a test {{ string.string.string }}.
并尝试执行以下替换:
%s/{{ [\w\.]\+ }}/substitute/g
它将无法处理错误:未找到模式。
当我使用时:
%s/{{ [a-zA-Z\.]\+ }}/substitute/g
它有效。
有没有办法在 VIM 的范围内使用元字符类?
Given I have the following string:
This is a test {{ string.string.string }}.
And try to perform the following substitution:
%s/{{ [\w\.]\+ }}/substitute/g
It will not work with the error: Pattern not found.
When I use:
%s/{{ [a-zA-Z\.]\+ }}/substitute/g
It works.
Is there a way to use the meta-character-classes in ranges in VIM?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用:
非捕获子表达式,请参阅
:help E53
(您也可以使用捕获子表达式\(\)
,但是捕获的开销是无用的)<预><代码>%s/{{ \%(\w\|\.\)\+ }}/substitute/g
可选匹配原子的序列 -
\%[]
,参见:help E70
<预><代码>%s/{{ \%[\w\.]\+ }}/substitute/g
You can use:
A non capturing sub-expression, see
:help E53
(you can use a capturing sub-expression as well,\(\)
, but the overhead of capturing is useless)A sequence of optionally matched atoms -
\%[]
, see:help E70