zoukankan      html  css  js  c++  java
  • 正则表达式

    vim中查找/

             替换s,一般格式 %s/ / /

             列全部%,只找到每行第一个

             行全部g,只找光标所在整行

    通配符与正则表达式区别:

      通配符常与shell命令配合,与文件名相关

      正则表达式通常用于文件的内容搜索查找、替换有关

    分类:①、基础

               ②、扩展

    一、基础正则表达式

           原字符分类:①、字符匹配   ②、匹配次数   ③、位置锚定    ④、分组

    字符匹配

    .  任意单个字符,如r..o

    [ ]  选定的字符,如[a-zA-Z];  [a-z]<=>[[:lower:]]

    匹配次数

    *      匹配前面一个字符任意次,包括0次。如oo*——>查找至少有一个o开头的

    .*       任意长度字符。包括贪婪模式,如root:oo:ro:taaa——>输入/r.*t——>root:oo:ro:t

    ?      匹配前面一个字符任1次或1次,即可有可无。(如果有符号需要用转义,例/etc/?)

    +      匹配前面一个字符任至少1次,即肯定有。

    {n}     匹配前面一个字符n次

    {m,n} 匹配前面一个字符m到n次

    {,n}    匹配前面一个字符n次以下

    {n,} 匹配前面一个字符n次以上

    [0-9]{n}       一个n位的数字串(这是扩展正则)

    [0-9]{n-m}   一个n到m位的数字串(这是扩展正则)

    位置锚定

    ^  以xx开头,例^#。

    将每行加上#注释:%s/^/#/

    $  以xx结尾,例n$

    /正则表达式/    搜索匹配的行,例以s开头的行:/^s/

    ^$  空行

    /<  单词词首。(除字母、数字、_,其他都算分隔符)    例/<a

    />  单词词尾。例b/>

    /< 单词/>  指定单词

    分组

    (单词)     例将root换为rooter:%s/(root)/1er/g   <==>   %s/(root)/&er/g 注意:1代表第一个()里的内容,/2就代表第二个。&代表前面搜的啥,我就是啥

    |  或  例如:a|b <==> [ab]        (c|C)at代表cat或Cat       ^(a|b)代表以a开头或b开头

    二、扩展正则表达式:基本不需要转移字符了。某些与基础正则表达式还是一样的。但需要工具支持才可以使用。

    set noic  不忽略大小写

  • 相关阅读:
    动态代理有啥用(总结)
    ES6随笔--各数据类型的扩展(4)--数组和对象
    ES6随笔--各数据类型的扩展(2)--数值
    ES6随笔--各数据类型的扩展(1) --字符串和正则
    ES6随笔--声明变量
    CommonJS随记
    DOM练习小记--一个简单的Web页面游戏
    js随笔--关于事件
    js随笔--关于this
    js随笔--循环里的弯弯绕
  • 原文地址:https://www.cnblogs.com/ldyaly/p/12739945.html
Copyright © 2011-2022 走看看