美文网首页
正则表达式

正则表达式

作者: linux_龍 | 来源:发表于2019-04-22 21:23 被阅读0次

    1.什么是正则表达式
    发明一套符号,不同的 符号有不同的含义,方便我们在文件中查找/过滤内容
    简称正则 regular expression RE
    正则表达式分类
    1.基础正则 basic BRE
    ^ , ,^ ,., , ., [] , [^]
    2.扩展正则 extended ERE
    +,| ,(),{} ,?
    2.通配符与正则区别
    作用 支持的命令
    通配符 方便我们进行查找文件 Linux下面大部分命令都可以使用
    正则 方便我们在文件中查找/过滤内容 Linux三剑客 开发语言 Python go java
    3.使用正则注意事项
    1.注意中文符号
    2.给grep egrep 加上颜色(centos7系统自带 centos6需要自己添加别名)
    3.空格也是符号
    cat -A 显示每一行结束的标记。显示隐藏符号,并在每行结尾加$
    4.基础正则

    \^以...开头的行 例:\^m \^oldboy
    \$ 以...结尾的行 例:m \$ oldboy\$
    ^$ 显示空行,这一行中什么都没有 排除空行:grep -vn '^$'
    

    表示任意一个字符(单个)不会匹配出空行。 grep -o显示grep每一次过滤出什么内容,匹配到什么内容(显示过程)
    \ 转义符,去掉符号原有的特殊含义(脱掉马甲,打回原形) 转义字符系列 \n 回车,换行:\t tab,一个字符相当于8个空格的位置
    *前一个字符连续出现0次或0次以上 重复=repetition 用法 grep 0* 很少单独使用
    [] 中括号 [abc] 相当于一个字符,匹配到a或b或c 中括号内的内容都会被匹配
    [^] 不要a或不要b或不要c [^abc] 字符为单位 不要这几个内容
    让echo支持转义字符 echo -e ' '
    echo 不输出每行结尾的回车 echo -n
    特点:贪婪性,能匹配多少就匹配多少,来者不拒
    正则表达式表示所有.或者是连续出现的时候会表现出贪婪性
    习题
    显示以m或n或o开头的行

    grep  '^[mno]'  /oldboy/oldboy.txt
    

    以m或n或点结尾的行

    grep  '[mn.]$'  /oldboy/oldboy.txt
    

    显示以m或n或o开头的并且以m或n或点结尾的行

    grep  '^[mno].*[mn.]$'  /oldboy/oldboy.txt
    grep  '^[mno] /oldboy/oldboy.txt |grep '[mn.]$'
    

    [^abc] 字符为单位 不要这几个内容
    grep -v 以行为单位 包含内容的行都不要
    5.扩展正则 使用grep -E或者egrep 也支持基础正则

    • 前一个字符连续出现1次或多次 一般与[]一起使用
      | 或者 没有管道的作用了,区分开
      () 被括起来的内容相当于是一个整体 sed里用来表示后向引用或反向引用
      {} 连续出现 例如: b{m,n} b出现了至少m次 最多n次 ; b{m} b出现了m次
      ? 前一个字符出现0次或1次 不常用
      括号表达式 了解 [[:alnum:]]大小写字母和数字
      查找:
      man grep
      info grep 详细
      扩展正则支持命令 grep -E或egrep/sed -r /awk
      基础正则支持命令 grep/sed/awk

    相关文章

      网友评论

          本文标题:正则表达式

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