zoukankan      html  css  js  c++  java
  • vim 正则替换【转】

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

    • range:搜索范围,如果没有指定范围,则作用于但前行。

      1. :1,10s/from/to/ 表示在第1到第10行(包含第1,第10行)之间搜索替换;
      2. :10s/from/to/ 表示只在第10行搜索替换;
      3. :%s/from/to/ 表示在所有行中搜索替换;
      4. 1,$s/from/to/ 同上。
    • flags 有如下四个选项:

      1. c confirm,每次替换前询问;
      2. e error, 不显示错误;
      3. g globle,不询问,整行替换。如果不加g选项,则只替换每行的第一个匹配到的字符串;
      4. i ignore,忽略大小写。

      这些选项可以合并使用,如cgi表示不区分大小写,整行替换,替换前询问。

    正则表达式

    1. 元字符

      • 元字符

        元字符说明
        . 匹配任意字符
        [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个
      • 表示位置的元字符

        元字符说明
        $ 匹配行尾
        ^ 匹配行首
        < 匹配单词词首
        > 匹配单词词尾
    2. 替换变量

      在正则式中以()括起来的正则表达式,在后面使用的时候可以用12等变量来访问()中的内容。

    例子

    1. 删除行尾空格::%s/s+$//g
    2. 删除行首多余空格:%s/^s*// 或者 %s/^ *//
    3. 删除沒有內容的空行:%s/^$// 或者 g/^$/d
    4. 删除包含有空格组成的空行:%s/^s*$// 或者 g/^s*$/d
    5. 删除以空格或TAB开头到结尾的空行:%s/^[ | ]*$// 或者 g/^[ | ]*$/d
    6. 把文中的所有字符串“abc……xyz”替换为“xyz……abc”可以有下列写法

      :%s/abc(.*)xyz/xyz1abc/g
      :%s/(abc)(.*)(xyz)/321/g

    sed:指定文件进行替换

    sed -i "s/from/to/g" 文件名

  • 相关阅读:
    HDU 2844 Coins(多重背包)
    HDU 4540 威威猫系列故事——打地鼠(DP)
    Codeforces Round #236 (Div. 2)
    FZU 2140 Forever 0.5
    HDU 1171 Big Event in HDU(DP)
    HDU 1160 FatMouse's Speed(DP)
    ZOJ 3490 String Successor
    ZOJ 3609 Modular Inverse
    ZOJ 3603 Draw Something Cheat
    ZOJ 3705 Applications
  • 原文地址:https://www.cnblogs.com/chenhuan001/p/7147662.html
Copyright © 2011-2022 走看看