一般替换

s/old/new   --- 替换当前行的第一个匹配项

s/old/new/g ---- 替换当前行所有的匹配项

number1,number2-s/old/new/g  ---- 替换从number1行到number2行中所有的匹配项

1,$s/old/new/g = %s/old/new/g ----- 替换整个文件的所有匹配项

确认再替换

在替换命令后面加个c(confirm),例如1,30s/his/the/gc。每次找到匹配项时会提示是否需要替换,输入y,Enter确认替换,不需要替换直接Enter跳过

context-sensitive 替换 g/pattern/s/old/new/g

第一个g表示需要从所有行查找pattern,后面的g表示当前行所有的匹配项都替换。

如果pattern和old是一样的,old可以省略,这样的命令等同于%s/old/new/g

正则表达式匹配规则

. ---- 匹配除换行符以外的所有字符

* ---- 匹配0个或多个字符

^ ---- 匹配一行的开始

$ ---- 匹配一行的结束

\ ---- 反意字符,表示后面的字符为一个常规字符。

\( \) --- 占位符,一行最多可以有9个。例如\(That\) or \(this\)    \(That\)为1号,后面需要用到That就可以使用\1来代替,\(this\)为2号,是用\2来调用。例如把That or this 替换为this or That则可以用命令%s/\(That\) or \(this\)/\2 or \1

\< /> ---- 匹配以字符开头或结尾的单词,例如\<ac 匹配以ac开头的单词,ac/>则匹配以ac结尾的单词

~ ---- 在查找中匹配上一个使用的正则表达式。例如开始查找/The,现在想查找/Then,则可以使用/~n来代替/Then

POSIX character classes

[:alnum:] ---- 匹配字母数字字符

[:alpha:] ---- 匹配字母字符

[:blank:] ---- 匹配空格和Tab字符

[:cntrl:] ---- 匹配Control字符

[:digit:] ---- 匹配数字字符

[:graph:] ---- 匹配可打印的和可见的非空白字符

[:lower:] ---- 匹配小写字符

[:print:] ---- 匹配可打印的字符包括空白

[:punct:] ---- 匹配标点符号字符

[:space:] ---- 匹配空白字符

[:upper:] ----- 匹配大写字符

[:xdigit:] ---- 匹配16进制的数字字符

在替换字符中使用元字符

\n ---- n表示0,9,前面说过\( \)保存的表达式

\ ---- 表示后面的特殊字符为普通字符

& ---- 表示查到的字符串

~ ---- 表示上一次替换的字符串

\u \l ---- 表示改变其后的字符为大写的或小写的,例如s/\(That\) or \(this\)/\u\2 or \l\1  把That or this 替换成This or that

\U \L 和\e \E ---- 表示改变其后的字符为大写的或小写的直到\e或\E的出现

最新文章

  1. 单元测试与Moq
  2. 阿里巴巴分布式服务框架dubbo学习笔记
  3. Hihocoder 1063 缩地
  4. Android多线程
  5. IE和主流浏览器
  6. wpf mvvm使用问题集锦
  7. [.Net MVC] 使用 log4net 日志框架
  8. Ext.Net学习笔记07:Ext.Net DirectMethods用法详解
  9. hdu 七夕节
  10. 深入了解Json转变为map的思想,附源代码2
  11. 微信SDK导入报错 Undefined symbols for architecture i386:&quot;operator delete[](void*)&quot;, referenced from:
  12. 第一次PS练习
  13. Windows Phone 如果你把Pivot控件当成主页面,那么这篇文章你值得看。
  14. NET功能集
  15. android -- 加载gif 防止oom
  16. C语言第六次博客作业--数据类型
  17. ng 服务端渲染
  18. Qt线程—QThread的使用--run和movetoThread的用法
  19. 理解OpenShift(6):集中式日志处理
  20. 英语口语练习系列-C32-建筑-述说时间-暮秋独游曲江

热门文章

  1. 在Silverlight宿主html页面添加按钮无法显示
  2. hihoCoder-1000-A+B
  3. android 中单选和复选框监听操作
  4. bat文件编写(无线承载网络设置)
  5. iOS代码实践总结
  6. wordpress 为文章内容添加自动过滤,例如为出站链接添加nofollow,也可以将淘宝客链接转换。。
  7. Entity Framework学习笔记(三)----CRUD(2)
  8. Visio编辑数据库模型列
  9. 【AFNetworking】AFNetworking源码阅读(一)
  10. 读《JavaScript语言精粹》的一些感言