- 浏览: 882698 次
- 性别:
- 来自: 大连
文章分类
- 全部博客 (319)
- Thinking / 反思 (27)
- 我读的技术类图书 (3)
- 我读的非技术图书 (3)
- Java & Groovy (55)
- Ruby/Rails (9)
- Python (10)
- C/C++ (14)
- C# & .net (9)
- 互联网相关技术 (6)
- Database (6)
- Unix/Linux (6)
- WindowsDev (21)
- 工具使用 / Tips (62)
- 编程技术杂谈/咨讯 (6)
- 软工 / 敏捷 / 模式 (6)
- 易筋经 / 各种内功 (3)
- 充电 / 他学科知识 (6)
- 外语学习 (16)
- 我和宝宝的甜蜜生活 (24)
- 八卦 (3)
- 健康 (0)
- 无类别 (0)
- mTogether (4)
- 一页纸 (3)
- SAP (7)
- baby (2)
- abap (2)
- temp (1)
- network (1)
- 生活 (1)
最新评论
-
daliang1215:
收藏一下,好东西。 xp 的快捷键用的非常爽,到win7缺没有 ...
Windows7: 右键任务栏上的一个窗口, 用快捷键c关闭它 -
Alice南京:
感谢
Java GC 监视方法与工具 -
wjason:
今天在excel 2010上面写了一些代码,果然lookup有 ...
Excel 公式: 根据一个单元格的用户输入值, 自动设置另一个单元格的值 -
wjason:
因式分解:http://zh.wikipedia.org/wi ...
教孩子学编程: 数学题1 -
bbls:
不错 找了好久了
VS2010: 在Solution Explorer中,自动关联当前正在编辑的文件
搜索vim正则表达式, 发现了下面这篇文章。
进而链接到了下面这个网站:Vim中文维基
?
感觉还不错,vim其实有自己的tips wiki,可惜在公司上不了。
?
另外在网上搜索vim tips会发现这个文章:vim best
tips,上次搜索过一次,感觉很不错,这几记录下来。
?
呵呵,忙里偷闲看了一眼这些文章,感觉世界美好了许多~:)?
评论
2 楼
wjason
2008-12-24
* 使用正则表达式的命令
* 元字符
o 表示数量的元字符
o 表示位置的符号
* 替换变量
* 函数式
* 与Perl正则表达式的区别
Vim中的正则表达式功能很强大,如果能自由运用,则可以完成很多难以想象的操作。
如果你比较熟悉Perl的正规表达式,可以直接参照与Perl正则表达式的区别一节。
使用正则表达式的命令 †
使用正则表达式的命令最常见的就是 / (搜索)命令。其格式如下:
/正则表达式
另一个很有用的命令就是 :s(替换)命令,将第一个//之间的正则表达式替换成第二个//之间的字符串。
:s/正则表达式/替换字符串/选项
在学习正则表达式时可以利用 / 命令来练习。
↑
元字符 †
元字符是具有特殊意义的字符。使用元字符可以表达任意字符、行首、行尾、某几个字符等意义。
元字符一览
元字符 说明
. 匹配任意一个字符
[abc] 匹配方括号中的任意一个字符。可以使用-表示字符范围,
如[a-z0-9]匹配小写字母和阿拉伯数字。
[^abc] 在方括号内开头使用^符号,表示匹配除方括号中字符之外的任意字符。
\d 匹配阿拉伯数字,等同于[0-9]。
\D 匹配阿拉伯数字之外的任意字符,等同于[^0-9]。
\x 匹配十六进制数字,等同于[0-9A-Fa-f]。
\X 匹配十六进制数字,等同于[^0-9A-Fa-f]。
\w 匹配单词字母,等同于[0-9A-Za-z_]。
\W 匹配单词字母之外的任意字符,等同于[^0-9A-Za-z_]。
\t 匹配<TAB>字符。
\s 匹配空白字符,等同于[ \t]。
\S 匹配非空白字符,等同于[^ \t]。
另外,如果要查找字符 *、.、/等,则需要在前面用 \ 符号,表示这不是元字符,而只是普通字符而已。
元字符 说明
\* 匹配 * 字符。
\. 匹配 . 字符。
\/ 匹配 / 字符。
\\ 匹配 \ 字符。
\[ 匹配 [ 字符。
↑
表示数量的元字符 †
元字符 说明
* 匹配0-任意个
\+ 匹配1-任意个
\? 匹配0-1个
\{n,m} 匹配n-m个
\{n} 匹配n个
\{n,} 匹配n-任意个
\{,m} 匹配0-m个
↑
表示位置的符号 †
元字符 说明
$ 匹配行尾
^ 匹配行首
\< 匹配单词词首
\> 匹配单词词尾
使用例
/char\s\+[A-Za-z_]\w*; " 查找所有以char开头,之后是一个以上的空白,
" 最后是一个标识符和分号
/\d\d:\d\d:\d\d " 查找如 17:37:01 格式的时间字符串
:g/^\s*$/d " 删除只有空白的行
:s/\<four\>/4/g " 将所有的four替换成4,但是fourteen中的four不替换
↑
替换变量 †
在正规表达式中使用 \( 和 \) 符号括起正规表达式,即可在后面使用\1、\2等变量来访问 \( 和 \) 中的内容。
使用例
/\(a\+\)[^a]\+\1 " 查找开头和结尾处a的个数相同的字符串,
" 如 aabbbaa,aaacccaaa,但是不匹配 abbbaa
:s/\(http:\/\/[-a-z\._~\+%\/]\+\)/<a href="\1">\1<\/a>/ " 将URL替换为<a href="http://url">http://url</a>的格式
:s/\(\w\+\)\s\+\(\w\+\)/\2\t\1 " 将 data1 data2 修改为 data2 data1
↑
函数式 †
在替换命令 s/// 中可以使用函数表达式来书写替换内容,格式为
:s/替换字符串/\=函数式
在函数式中可以使用 submatch(1)、submatch(2) 等来引用 \1、\2 等的内容,而submatch(0)可以引用匹配的整个内容。
使用例
:%s/\<id\>/\=line(".") " 将各行的 id 字符串替换为行号
:%s/^\<\w\+\>/\=(line(".")-10) .".". submatch(1) " 将每行开头的单词替换为 (行号-10).单词 的格式,
" 如第11行的 word 替换成 1. word
↑
与Perl正则表达式的区别 †
元字符的区别
Vim语法 Perl语法 含义(vim中的正则表达式部分元字符需要\转义。
\+ + 1-任意个
\? ? 0-1个
\{n,m} {n,m} n-m个
\(和\) (和) 分组
\| | 或操作
* 元字符
o 表示数量的元字符
o 表示位置的符号
* 替换变量
* 函数式
* 与Perl正则表达式的区别
Vim中的正则表达式功能很强大,如果能自由运用,则可以完成很多难以想象的操作。
如果你比较熟悉Perl的正规表达式,可以直接参照与Perl正则表达式的区别一节。
使用正则表达式的命令 †
使用正则表达式的命令最常见的就是 / (搜索)命令。其格式如下:
/正则表达式
另一个很有用的命令就是 :s(替换)命令,将第一个//之间的正则表达式替换成第二个//之间的字符串。
:s/正则表达式/替换字符串/选项
在学习正则表达式时可以利用 / 命令来练习。
↑
元字符 †
元字符是具有特殊意义的字符。使用元字符可以表达任意字符、行首、行尾、某几个字符等意义。
元字符一览
元字符 说明
. 匹配任意一个字符
[abc] 匹配方括号中的任意一个字符。可以使用-表示字符范围,
如[a-z0-9]匹配小写字母和阿拉伯数字。
[^abc] 在方括号内开头使用^符号,表示匹配除方括号中字符之外的任意字符。
\d 匹配阿拉伯数字,等同于[0-9]。
\D 匹配阿拉伯数字之外的任意字符,等同于[^0-9]。
\x 匹配十六进制数字,等同于[0-9A-Fa-f]。
\X 匹配十六进制数字,等同于[^0-9A-Fa-f]。
\w 匹配单词字母,等同于[0-9A-Za-z_]。
\W 匹配单词字母之外的任意字符,等同于[^0-9A-Za-z_]。
\t 匹配<TAB>字符。
\s 匹配空白字符,等同于[ \t]。
\S 匹配非空白字符,等同于[^ \t]。
另外,如果要查找字符 *、.、/等,则需要在前面用 \ 符号,表示这不是元字符,而只是普通字符而已。
元字符 说明
\* 匹配 * 字符。
\. 匹配 . 字符。
\/ 匹配 / 字符。
\\ 匹配 \ 字符。
\[ 匹配 [ 字符。
↑
表示数量的元字符 †
元字符 说明
* 匹配0-任意个
\+ 匹配1-任意个
\? 匹配0-1个
\{n,m} 匹配n-m个
\{n} 匹配n个
\{n,} 匹配n-任意个
\{,m} 匹配0-m个
↑
表示位置的符号 †
元字符 说明
$ 匹配行尾
^ 匹配行首
\< 匹配单词词首
\> 匹配单词词尾
使用例
/char\s\+[A-Za-z_]\w*; " 查找所有以char开头,之后是一个以上的空白,
" 最后是一个标识符和分号
/\d\d:\d\d:\d\d " 查找如 17:37:01 格式的时间字符串
:g/^\s*$/d " 删除只有空白的行
:s/\<four\>/4/g " 将所有的four替换成4,但是fourteen中的four不替换
↑
替换变量 †
在正规表达式中使用 \( 和 \) 符号括起正规表达式,即可在后面使用\1、\2等变量来访问 \( 和 \) 中的内容。
使用例
/\(a\+\)[^a]\+\1 " 查找开头和结尾处a的个数相同的字符串,
" 如 aabbbaa,aaacccaaa,但是不匹配 abbbaa
:s/\(http:\/\/[-a-z\._~\+%\/]\+\)/<a href="\1">\1<\/a>/ " 将URL替换为<a href="http://url">http://url</a>的格式
:s/\(\w\+\)\s\+\(\w\+\)/\2\t\1 " 将 data1 data2 修改为 data2 data1
↑
函数式 †
在替换命令 s/// 中可以使用函数表达式来书写替换内容,格式为
:s/替换字符串/\=函数式
在函数式中可以使用 submatch(1)、submatch(2) 等来引用 \1、\2 等的内容,而submatch(0)可以引用匹配的整个内容。
使用例
:%s/\<id\>/\=line(".") " 将各行的 id 字符串替换为行号
:%s/^\<\w\+\>/\=(line(".")-10) .".". submatch(1) " 将每行开头的单词替换为 (行号-10).单词 的格式,
" 如第11行的 word 替换成 1. word
↑
与Perl正则表达式的区别 †
元字符的区别
Vim语法 Perl语法 含义(vim中的正则表达式部分元字符需要\转义。
\+ + 1-任意个
\? ? 0-1个
\{n,m} {n,m} n-m个
\(和\) (和) 分组
\| | 或操作
1 楼
wjason
2008-10-13
替换变量
在正规表达式中使用 \( 和 \) 符号括起正规表达式,即可在后面使用\1、\2等变量来访问 \( 和 \) 中的内容。
在正规表达式中使用 \( 和 \) 符号括起正规表达式,即可在后面使用\1、\2等变量来访问 \( 和 \) 中的内容。
发表评论
-
批量替换,一个文件夹中, 所有文件中的某个特定字符串(For Lync Update)
2015-10-10 10:31 1907因为Office升级, 需要对所有的脚本内容, 做如下字符 ... -
Snagit: "在截图中自动添加时间戳"功能的开启与关闭
2015-07-21 16:27 1570Snagit有这样一个功能 - "在截图中自动添 ... -
网易公开课 - 让我们教孩子编码吧
2014-01-05 15:44 1308看了这个网易公开课. http://v.163.com/m ... -
Alias for Command Parameter for Bash
2013-12-30 12:25 1395bash的alias(别名)不直接支持$1,$2,$3,这 ... -
grep tools on windows
2013-12-28 19:52 1317最开始一直使用这个工具. FileLocator Lit ... -
VIM: 编写自己的“高亮显示syntax文件"
2013-10-13 08:52 891The following link is very use ... -
AutoHotKey: 从资源管理器中,获取被选择的文件的路径(及文件夹)的API
2013-10-12 11:49 7054从下面的URL中,获得了这个Library. Ge ... -
Everything Command Line Option
2013-09-14 10:56 1241Run "everything --help&q ... -
Links
2013-07-27 21:03 1114Reference Card DZone refc ... -
Wireshark Filters
2013-06-23 16:18 1654Wireshark是一款非常好用的网络抓包工具: htt ... -
在linux的VMware虚拟机中, 无法访问VMware的Shared Folders
2013-06-11 21:41 2368在一个VMware虚拟机的Setting中可以设置Shar ... -
Excel条件格式: 根据某一列单元格的值, highlight整行
2013-06-11 10:43 13734[追记 about excel Conditional F ... -
VIM: 查看log文件时的一些技巧, 关于如何展示搜索结果
2013-05-25 08:21 2198最近的学习工作中, 查看log文件需求特别多, 于是我对 ... -
Vim: Windows7中, 通过右键菜单加快捷键v, 快速启动vim
2013-05-22 14:39 3564在xp时代, 安装了vim之 ... -
Windows7: 右键任务栏上的一个窗口, 用快捷键c关闭它
2013-05-10 21:34 3368右键任务栏上的一个窗口, 在弹出菜单之后, 按下字母c, ... -
Windows 7: 单显示器, 窗口布局快捷键
2013-05-09 17:24 1651使用但显示器, 尤其是使用笔记本的用户, 应该有过这样的感 ... -
下述PDF文件无法保存解决办法: There was a problem reading this document(135)
2013-04-15 08:38 4763手头有一个PDF文档, 是加密的. 所以无法对他进行编辑和 ... -
Windows命令行中, 类似于linux的history命令
2012-10-31 09:43 7870在写这篇博客的时候: ImageMagick: 图像处理工具包 ... -
VS2010: 在Solution Explorer中,自动关联当前正在编辑的文件
2012-09-01 14:03 2780在Eclipse中有这样的功能:Link with edit ... -
AutoHotkey:使用快捷键,在双显示器间,移动最大化的窗口
2012-07-11 11:09 4389无意间看了我以前写的一篇博客:VC++: 在双显示器间,移动最 ...
相关推荐
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 ...
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中 $ 一行的结尾 ^$ ##表示空行 . ##代表且只能代表任意一个字符 \ ##例:\. 只代表点本身,转义符号,让...
熟练掌握正则表示法 简单地说,正则表示法就是处理字符串的方法,它以“行”为单位来进行字符串的处理。正则表示法透过一些特殊符号的辅助,可以让使用者轻易完成查找/删除/替换某些特定字符串...3.基础正则表达式的特
Txt2regex知道许多不同的正则表达式风格的特殊符号和注意事项,可以为20多个目标生成有效的正则表达式,包括grep,sed,Vim,Emacs,JavaScript,Python,PHP,PostgreSQL。 Txt2regex是一个单文件shell脚本,使用...
请注意,它与Vim实现高度兼容,但不支持Vim正则表达式。 :play_button_selector: 操场 :play_button_selector: 上尝试errorformat! 游乐场使用尝试在Go with JavaScript中实现 :sparkles: 用法 import "github....
Yankitute将yank和substitute Vim命令合并为一个。 像替换一样,它在缓冲区中搜索模式,并使用用户提供的格式字符串转换所有匹配项。 但是,它没有像转换后的匹配项那样替换缓冲区中的文本,而是像yank一样将转换后...
VimRegexTutor Vim编辑器用户的“动手”正则表达式教程。 小费如果您喜欢VimRegexTutor并想分享W00t !,我将感谢您提供的或。 项目页面 维护者巴里·亚瑟(Barry Arthur)< > 地位测试版,欢迎反馈改编自 大多数...
Mastering Vim: Build a software development environment with Vim and Neovim By 作者: Ruslan Osipov ISBN-10 书号: 1789341094 ISBN-13 书号: 9781789341096 出版日期: 2018-11-30 pages 页数: (330) Vim is ...
取代s1.4 Vim正则表达式 [^3]文本元字符数量元字符[^4]位置元字符转义特殊字符子表达式回溯引用前后查找2、Vim编辑模式3、指令列模式4、三种模式相互关系的简略图 1、Vim一般模式 以 vim 打开一个档案就直接进入一般...
simple_vim_guide 插件介绍 如何编写插件 像IDE一样使用 命令用法 使用内置功能 VIM正则表达式和搜索/替换
同时VIM与很多快捷键设置和正则表达式类似,可以辅助记忆。2)文本与文件查找:grep和find命令将会很便利。3)系统管理篇:服务状态的查询命令,服务配置文件的缩写,访问控制方式分类以及源代码编译安装等。4)硬盘...