VIM中的正则表达式
转载:http://jjz.iteye.com/blog/387649
记性不好,才一段时间不用发现vim的东西忘的差不多了。要重新熟悉才行。现从正则表达式开始,用惯了Java和Python的正则表达式,再用Linux的正则表达式还真有点不习惯,而且grep和vim的正则表达式有些微区别,grep和egrep的正则表达式也有一点区别。用用之前要好好想想才行,太恶心了。
今天现把VIM的正则表达式整理一些,过几天整理grep的。(补充:grep的正则表达式在元字符方面和vi差不多,不整理了)
vim的正则表达式的有两种模式,magic和nomagic,两种模式下,元字符是不一样的。可以通过set
mogic和set nomagic进行选择,默认是magic。建议不要乱设置,就用magic模式差不多。也可以再Pattern指定用magic和nomagic,这里不废话了,下面列出常用的magic的表达式。
对前一个模式的次数匹配
\*
|
0到多次,尽可能多匹配
|
\+
|
1到多次,尽可能多匹配
|
\=
|
0到1次,尽可能多匹配
|
\?
|
0到1次,尽可能多匹配
|
\{n,m}
|
n到m词,尽可能多匹配
|
\{n}
|
n次,尽可能多匹配
|
\{n,}
|
至少n次,尽可能多匹配
|
\{,m}
|
0到m次,尽可能多匹配
|
\{}
|
0到多次,尽可能多匹配(和\*一样)
|
\{-n,m}
|
n到m次,尽可能少匹配
|
\{-n}
|
n次
|
\{-n,}
|
至少n次,尽可能少匹配
|
\{-,m}
|
至多m次,尽可能少匹配
|
\{-}
|
0到多次,尽可能少匹配
|
位置匹配
^
|
行开头
|
\_^
|
行开头
|
$
|
行末尾
|
\_$
|
行末尾
|
.
|
换行之外的任何字符
|
\_.
|
单个字符,包括换行符
|
\<
|
单词开始
|
\>
|
单词结束
|
\%^
|
文件开头
|
\%$
|
文件结束
|
\%V
|
可视化区域内部
|
\%#
|
光标位置
|
\%'m
|
标记点m,m可以自己定义的标记点(使用'm)
|
\%nl
|
匹配第n行,n是一个数字
|
\%nc
|
匹配第n列,n是一个数字
|
常用预定义字符
\i
|
标识符字符,如字母数字下划线等
|
\I
|
和\i相似,但不包括数字
|
\f
|
文件名字符
|
\F
|
类似\f,但不包括数字
|
\p
|
可打印字符
|
\P
|
类似\p,但不包括数字
|
\s
|
空白字符
|
\S
|
非空白字符
|
\d
|
数字[0-9]
|
\D
|
非数字[^0-9]
|
\x
|
16进制字符[0-9a-fA-F]
|
\X
|
非16进制字符
|
\o
|
八进制字符[0-7]
|
\O
|
非八进制字符
|
\w
|
字母[a-zA-Z_0-9]
|
\W
|
非字母
|
\h
|
单词开头字符,比\w少了数字
|
\H
|
非单词开头字符
|
\a
|
字母表字符[a-zA-Z]
|
\A
|
非字母表字符
|
\l
|
小写字母
|
\L
|
非小写字母
|
\u
|
大写字母
|
\U
|
非大写字符
|
\_x
|
X是上面字符中的一个,\_x比\x多匹配一个换行符
|
\t
|
<Tab>
|
\n
|
换行符
|
\1 \2 \3
|
第n个捕获的组\(\)
|
其他
\(\)
|
组捕获
|
\%(\)
|
非捕获组,和\(\)类似,但不捕获
|
\|
|
分支
|
分享到:
相关推荐
vim正则表达式的使用,轻松处理文本文件
VIM,很好很强大;正则表达式亦是如此。将两者有机结合起来,使工作效率更高。本教程面向正则表达式爱好者或有一定基础的VIM用户。非常之详细。
Vim中的正则表达式功能很强大,如果能自由运用,则可以完成很多难以想象的操作。下面这篇文章主要给大家介绍了关于Vim中查找替换及正则表达式使用的相关资料,文中介绍的非常详细,需要的朋友可以参考借鉴,下面来...
首先要记住的是: 正则表达式与通配符不一样,它们表示的含义并不相同! 正则表达式只是一种表示法,只要工具支持这种表示法, ...vim、grep、awk 、sed 都支持正则表达式,也正是因为由于它们支持正则,才显得它们强大。
vim、grep、awk 、sed 都支持正则表达式,也正是因为由于它们支持正则,才显得它们强大;在以前上班的公司里,由于公司是基于web的服务型网站(nginx),对正则的需求比 较大,所以也花了点时间研究正则,特与大家分享...
正则表达式语法备忘单 许多程序使用正则表达式来查找和替换文本。 然而,它们往往带有自己不同的风味。 您可能会期望大多数现代软件和编程语言都使用 Perl 风格的一些变体,“PCRE”; 然而,命令行工具(grep、...
正则表达式(Regular Expression)是用于描述一组字符串特征的模式,用来匹配特定的字符串。通过特殊字符+普通字符来进行模式描述,从而达到文本匹配目的工具。类似于生活中常见的寻人启示,通过描述一个人的特征来...
隐藏显示.vim HideShow 可以轻松地将基于正则表达式的折叠应用于您的 vim 缓冲区。 例如,Java 源文件的简单折叠可能是: :Show \v (public|private|protected) :Show 和 :Hide 调用是累积的,因此以下三个 :Show ...
熟练掌握正则表示法 简单地说,正则表示法就是处理字符串的方法,它以“行”为单位来进行字符串的处理。正则表示法透过一些特殊符号的辅助,可以让使用者轻易完成查找/删除/替换某些特定字符串...3.基础正则表达式的特
VimRegexTutor Vim编辑器用户的“动手”正则表达式教程。 小费如果您喜欢VimRegexTutor并想分享W00t !,我将感谢您提供的或。 项目页面 维护者巴里·亚瑟(Barry Arthur)< > 地位测试版,欢迎反馈改编自 大多数...
vim-fnr 在 Vim 中使用实时预览进行 Find-N-Replace(实验性)安装使用您最喜欢的插件管理器。 VIM-FNR需要 。 使用 : Plug ' junegunn/vim-pseudocl 'Plug ' junegunn/vim-fnr '用法正常模式<Leader>r<Movement> -...
^word ##搜索以word开头的 vi/vim中 ^ 一行的开头 word$ ##搜索以word结尾的 vi/vim中 $ 一行的结尾 ^$ ##表示空行 . ##代表且只能代表任意一个字符 \ ##例:\. 只代表点本身,转义符号,让有特殊身份意义的...
几乎不了解正则表达式的用户可以通过在基于文本的简单交互式界面中回答问题来快速创建毛状正则表达式。 Txt2regex知道许多不同的正则表达式风格的特殊符号和注意事项,可以为20多个目标生成有效的正则表达式,包括...
但是,它没有像转换后的匹配项那样替换缓冲区中的文本,而是像yank一样将转换后的匹配项复制到寄存器中。 句法 语法类似于Vim的内置替代命令: :[range]Yankitute[register]/{pattern}/[string]/[flags]/[join] ...
vim下的正则表达式,方面大工程下的脚本编程
·使用Vim的扩展文本对象以及威力强大的正则表达式 ·执行多窗口编辑,并设计Vim脚本 ·充分利用图形化用户界面版的Vim,gvim ·使用Vim的强化功能,例如语法高亮显示及扩展标签 ·Vim与其他三种vi同类品的比较...
增量正则表达式编辑在增量搜索中,您可以一次看到给定正则表达式匹配的所有模式。用法安装Neobundle / Vundle / vim插件NeoBundle ' haya14busa/incsearch.vim 'Plugin ' haya14busa/incsearch.vim 'Plug ' haya14...
同时VIM与很多快捷键设置和正则表达式类似,可以辅助记忆。2)文本与文件查找:grep和find命令将会很便利。3)系统管理篇:服务状态的查询命令,服务配置文件的缩写,访问控制方式分类以及源代码编译安装等。4)硬盘...
·使用Vim的扩展文本对象以及威力强大的正则表达式 ·执行多窗口编辑,并设计Vim脚本 ·充分利用图形化用户界面版的Vim,gvim ·使用Vim的强化功能,例如语法高亮显示及扩展标签 ·Vim与其他三种vi同类品的比较...