[翻译]
" \zs and \ze regex delimiters :h /\zs
" \zs和\ze正则表达式符号,:h /\zs
/<\zs[^>]*\ze> : search for tag contents, ignoring chevrons
查找XML标记的内容,忽略尖括号
[注解]
:help /\zs
:help /\ze
这个正则表达式匹配位于“<>”间的内容,但不匹配“<”和“>”这两个字符。
其中,“\zs”指明匹配在此处开始,“\ze”指明匹配在此处结束。
[翻译]
" zero-width :h /\@=
"零长度 :h /\@=
/<\@<=[^>]*>\@= : search for tag contents, ignoring chevrons
查找XML标记的内容,忽略尖括号
/<\@<=\_[^>]*>\@= : search for tags across possible multiple lines
查找可能越过多行的XML标记
[注解]
:help \@<=
:help \@=
这两个正则表达式理解起来有难度,要讲清楚也不容易。
像“\@<=”、“\@=”、“\<”、“\>”、“\zs”、“\ze”这类的元字符,并不匹配任何实际字符,它们只是用来检查匹配是否存在。正则表达式在进行匹配时,需要满足它们所规定的条件。因为它们不匹配实际字符,所以称它们为匹配零长度的元字符。
“\<”和“\>”匹配单词的开始和结束。
“\zs”和“\ze”表示匹配的开始和结束。
“\@<=”要求前面的元字符刚好出现在它后面的匹配模式之前。它只是用来检查这个条件,它前面的元字符并不会包含在匹配结果中。
“\@=”匹配它前面的元字符,但匹配长度为0。也就是说,它只检查前面的元字符是否存在,并不把前面的元字符包含在匹配结果中。在它后面出现的元字符,将在与它前面的元字符相同的位置被匹配。举个例子,“foo\(bar\)\@=”匹配foolbar单词中的foo,但不会匹配fool。而“foo\(bar\)\@=foo”不匹配任何东西,因为它要求在foobar的b字母开始的位置上匹配foo,这显然是不可能的。“foo\(bar\)\@=…”会匹配到foobar而不会匹配foobbb,想一想为什么?
对于正则式“<\@<=[^>]*>\@=”来说,“\@<=”的作用是要求“<”必须出现在“[^>]*”模式之前,但匹配是从“[^>]*”开始的;而“\@=”表示必须有“>”出现,但并不把“>”包含在匹配结果中(零长度匹配)。所以这个表达式的效果和上面的“<\zs[^>]*\ze>”是相同的。
:help /\_[]
“\_[]”匹配集合中的元字符和换行符。我们在前面介绍过“\_.”和“\_s”,它们都是在原有的匹配上增加了换行符。这是VIM正则表达式的扩展。
[翻译]
"searching over multiple lines \_ means including newline
" 查找多行。\_ 表示包括新行
/<!--\_p\{-}--> : search for multiple line comments
查找多行注释
[注解]
:help \p
:help \_p
:help /\{-
这个正则表达式查找跨行的XML注释。
其中“\p”代表可显示字符,“\_p”在“\p”基础增加了换行符的匹配。
“\{-}”匹配前面的元字符,尽可能少。它和“*”的区别是,“*”会尽可能多的匹配它前面的元字符。
[翻译]
/fred\_s*joe/i : any whitespace including newline
查找在 fred 和 joe 两个单词之间任意多的空格,包括新行
[注解]
见前。
[翻译]
/bugs\(\_.\)*bunny : bugs followed by bunny anywhere in file
bugs 后任意位置含有 bunny 单词的多个行
[注解]
见前。
[翻译]
:h \_ : help
帮助
[注解]
:help \_
帮助入口。
[参考文档]
1. http://www.rayninfo.co.uk/vimtips.html
2. http://groups.google.com/group/Vim-cn/msg/f72fba0645955101?
3. VIM帮助文件
4. http://vimcdoc.sourceforge.net/
[尾记]
本文可以自由应用于非商业用途。转载请注明出处。
原文链接:http://blog.csdn.net/easwy
分享到:
相关推荐
VMware-VIM-all-6.7.0-15976714 原版镜像 .................................................................................................................
vmware vcenter6.5 for windows版本。 VMware-VIM-all-6.5.0-14020092
vim键盘图 . 键盘布局彩图(打出来参考,很方便) vi-vim-cheat-sheet.gif vi-vim-tutorial-1.gif vi-vim-tutorial-2.gif vi-vim-tutorial-3.gif...vi-vim-tutorial-5.gif vi-vim-tutorial-6.gif vi-vim-tutorial-7.gif
vim-common-7.4.629-7.el7.x86_64.rpm
**vim-powerline-develop** 是一个针对 Vim 编辑器的扩展插件,它属于 Vim 插件中的 **powerline** 家族。Powerline 是一个非常流行的增强型状态栏插件,它为 Vim、Emacs 和其他软件提供了一个美观、信息丰富的状态...
vim-tmux-focus-events, 使终端vim和tmux更好地协同工作 tmux-focus-events.vimFocusGained 和 FocusLost 自动命令事件在终端vim中不工作。 这个插件在使用vim内部Tmux时恢复它们。以下是相关内容:vim fugitive插件...
VMware vSphere 6.7 百度网盘链接及提取 码
Atom-atom-vim-mode-plus是针对Atom文本编辑器的一个扩展插件,主要目的是增强其内置的VIM编辑模式。VIM(Vi Improved)是一种高度可配置的文本编辑器,以其高效的操作方式和丰富的命令集而闻名。在Atom中,VIM模式...
vim-for-server, .vimrc, 简单配置服务器,不带插件 vim-for-servervimrc,简单配置服务器,不带插件。简介这个存储库是 k-vim的简化版本。只删除所有插件,保留基本配置。屏幕截图 安装 。 如果有必要,备份旧的. ...
以上就是对文件《Best+of+VIM+Tips(译注).pdf》中的VIM编辑器相关知识点的总结。VIM提供的这些替换命令和操作技巧可以大幅提高文本处理的效率,是学习VIM编辑器时需要掌握的重要内容。在实际使用中,合理运用这些...
根据提供的文件信息,我们可以推断出这份资料与VMware vCenter Infrastructure Manager (VIM) Setup 5.5.0版本有关。尽管描述部分没有提供太多技术细节,但从标题和其他信息中,我们可以提炼出一系列与VMware ...
离线安装包,亲测可用
离线安装包,亲测可用
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
vim-atom-dark, 一个由 Atom 黑暗主题默认启发的vim主题 vim-atom-dark一个由 Atom 黑暗主题默认启发的vim主题。 在 .vim 文件夹中克隆这个文件或者将 colors/atom-dark.vim 文件放在 colors/ 中。
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
vim-markdown-toc, 用于生成 Markdown 文件目录的vim 7.4 插件 vim-markdown-toc用于生成 Markdown 文件目录的vim 7.4 插件。中文版使用指南目录特性安装工具使用情况生成内容目录。更新现有目录删除目录选项屏幕...
vim-common-7.4.629-8.el7_9.x86_64.rpm vim-enhanced-7.4.629-8.el7_9.x86_64.rpm vim-filesystem-7.4.629-8.el7_9.x86_64.rpm vim-minimal-7.4.160-5.el7.x86_64.rpm
vim-8.0.zip gpm-libs-1.20.7-6.el7.i686.rpm ncurses-5.9-14.20130511.el7_4.x86_64.rpm ncurses-base-5.9-14.20130511.el7_4.noarch.rpm ncurses-devel-5.9-14.20130511.el7_4.x86_64.rpm ncurses-libs-5.9-14....