• vim使用指北 ---- Global Replacement


    一般替换

    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表示0,9,前面说过( )保存的表达式

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

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

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

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

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

  • 相关阅读:
    Oracle decode函数
    Flink笔记
    httpclient之put 方法(参数为json类型)
    XMLHTTPRequest的理解 及 SpringMvc请求和响应xml数据
    SQL获取本周,上周,本月,上月第一天和最后一天 注:本周从周一到周天
    Other
    Sql根据起止日期生成时间列表
    sql 在not in 子查询有null值情况下经常出现的陷阱
    sql 判断一个表的数据不在另一个表中
    查看系统触发器
  • 原文地址:https://www.cnblogs.com/hanwwly/p/3976148.html
Copyright © 2020-2023  润新知