当前位置:  开发笔记 > 编程语言 > 正文

vim的正则表达式解释

如何解决《vim的正则表达式解释》经验,为你挑选了2个好方法。

如果我想要所有带有'ruby'但不是'myruby'文本的行,那么这就是我要做的.

:g/\/

我的问题是这里的小于和大于符号的含义是什么?我使用的唯一正则表达式是在ruby中编程.

同样,如果我想找到三个连续的空白行,那么这就是我要做的

/^\n\{3}

我的问题是为什么我逃脱第一个大括号(打开大括号)但没有逃脱第二个大括号(关闭大括号)?



1> Brian Carper..:

Vim在regex中逃避反斜杠的规则并不一致.你必须逃脱开口支撑\{...},但[...]根本不需要逃脱,并且捕获组是\(...\)(逃避打开和关闭的paren).还有其他不一致之处.

值得庆幸的是,Vim允许您通过magic设置更改此行为,即使是在正则表达式的基础上.如果你放在\v正则表达式的开头,那么逃避规则会变得更加一致; 除了数字,字母和下划线之外,所有内容都是"神奇的",因此除非要插入除此之外的文字字符,否则不需要反斜杠.

然后你的第一个例子就变成了:g/\v/你的第二个例子/\v^\n{3}.请参阅:h /magic:h /\v了解更多信息.


你可以在你的vimrc'设置魔法',以便始终拥有魔法模式.顺便说一下,我认为'魔术'表达是由\ m开始而不是由\ v\v表示'没有魔法'

2> Nathan Fellm..:

\<\>平均字边界.在Perl中,grep和less(名称为3 OTOH)就是你用\b的,所以我想在Ruby中它是一样的.

关于你的第二个问题,整个表达需要逃避{3}.你并没有逃避每个花括号,而是将整个事物放在一起.

有关更多信息,请参阅此问

推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有