zoukankan      html  css  js  c++  java
  • Vim查找替换及正则表达式的使用

    原文地址:http://tanqisen.github.io/blog/2013/01/13/vim-search-replace-regex/
    简单替换表达式

    :[range]s/from/to/[flags]

    range:搜索范围,如果没有指定范围,则作用于但前行。
        :1,10s/from/to/ 表示在第1到第10行(包含第1,第10行)之间搜索替换;
        :10s/from/to/ 表示只在第10行搜索替换;
        :%s/from/to/ 表示在所有行中搜索替换;
        1,$s/from/to/ 同上。
    
    flags 有如下四个选项:
        c confirm,每次替换前询问;
        e error, 不显示错误;
        g globle,不询问,整行替换。如果不加g选项,则只替换每行的第一个匹配到的字符串;
        i ignore,忽略大小写。
    
    这些选项可以合并使用,如cgi表示不区分大小写,整行替换,替换前询问。
    

    正则表达式

    元字符
    
        元字符
        元字符     说明
        .   匹配任意字符
        [abc]   匹配方括号中的任意一个字符,可用-表示字符范围。如[a-z0-9]匹配小写字母和数字
        [^abc]  匹配除方括号中字符之外的任意字符
        d  匹配阿拉伯数字,等同于[0-9]
        D  匹配阿拉伯数字之外的任意字符,等同于[^0-9]
        x  匹配十六进制数字,等同于[0-9A-Fa-f]
        X  匹配十六进制数字之外的任意字符,等同于[^0-9A-Fa-f]
        l  匹配[a-z]
        L  匹配[^a-z]
        u  匹配[A-Z]
        U  匹配[^A-Z]
        w  匹配单词字母,等同于[0-9A-Za-z_]
        W  匹配单词字母之外的任意字符,等同于[^0-9A-Za-z_]
        	  匹配<TAB>字符
        s  匹配空白字符,等同于[	]
        S  匹配非空白字符,等同于[^	]
    
    
        一些普通字符需转意
        元字符     说明
        *  匹配* 字符
        .   匹配. 字符
        /  匹配 / 字符
           匹配  字符
        [  匹配 [ 字符
        ]  匹配 ] 字符
    
    
        表示数量的元字符
        元字符     说明
        *   匹配0-任意个
        +  匹配1-任意个
        ?  匹配0-1个
        {n,m}  匹配n-m个
        {n}    匹配n个
        {n,}   匹配n-任意个
        {,m}   匹配0-m个
    
    
        表示位置的元字符
        元字符     说明
        $  匹配行尾
        ^   匹配行首
        <  匹配单词词首
        >  匹配单词词尾
    
    
    替换变量
    
    在正则式中以(和)括起来的正则表达式,在后面使用的时候可以用1、2等变量来访问(和)中的内容。
    

    例子

    删除行尾空格::%s/s+$//g
    删除行首多余空格:%s/^s*// 或者 %s/^ *//
    删除沒有內容的空行:%s/^$// 或者 g/^$/d
    删除包含有空格组成的空行:%s/^s*$// 或者 g/^s*$/d
    删除以空格或TAB开头到结尾的空行:%s/^[ |	]*$// 或者 g/^[ |	]*$/d
    
    把文中的所有字符串“abc……xyz”替换为“xyz……abc”可以有下列写法
    
    :%s/abc(.*)xyz/xyz1abc/g
    :%s/(abc)(.*)(xyz)/321/g
    
  • 相关阅读:
    AvalonDock使用体验
    使用vs2015时,拖拉窗口,窗口隐藏后点击显示就会报错,错误代码“已在“VisualTreeChanged”事件期间更改可视化树”。
    es6的常用新特性
    js如何准确获取当前页面url网址信息
    移动端1px细线解决方案总结
    Zepto tap 穿透bug、解决移动端点击穿透问题
    js继承的方式有几种
    js常用的几种模式
    判断对象类型 typeof instanceof Object.prototype.tostring()
    new的实现机制
  • 原文地址:https://www.cnblogs.com/guochaoxxl/p/6823097.html
Copyright © 2011-2022 走看看