美文网首页
vim正则匹配若干操作

vim正则匹配若干操作

作者: 阿发贝塔伽马 | 来源:发表于2019-05-21 15:50 被阅读0次

    三种匹配命令用法:

    1、/ (搜索)命令

    其格式如下:
    /正则表达式
    如:查找所有空行

    /^s*$
    

    2、:s(替换)命令

    将第一个//之间的正则表达式替换成第二个//之间的字符串。
    :s/正则表达式/替换字符串/选项

    3、删除包含特定字符的行

    元字符

    元字符是具有特殊意义的字符。使用元字符可以表达任意字符、行首、行 尾、某几个字符等意义。

    元字符一览
    元字符 说明
    . 匹配任意一个字符
    [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开头,之后是一个以上的空白,
                                                 " 最后是一个标识符和分号
    
    /char\s+[A-Za-z_]\w*;
    /\d\d:\d\d:\d\d                        " 查找如 17:37:01 格式的时间字符串
    
    /\d\d:\d\d:\d\d
    :s/\<four\>/4/g                        " 将当前行的four替换成4,但是fourteen中的four不替换
    
    :s/<four>/4/g
    :s/\<four\>/4/                     " 替换当前行第一个 vivian 为 sky   
    
    :%s/\<four\>/4/g                        " 将所有行的four替换成4,但是fourteen中的four不替换,替换s前加%
    

    1. 全局删除匹配到的行

    :g/pattern/d
    

    2. 删除第1-10行里的匹配到的行

    :1,10g/pattern/d
    

    3. 删除不包含指定字符的行

    :v/pattern/d
    

    :g!/pattern/d
    

    相关文章

      网友评论

          本文标题:vim正则匹配若干操作

          本文链接:https://www.haomeiwen.com/subject/cozkzqtx.html