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

      首先介绍下正则表达式,它是由一串字符和元字符构成的字符串,简称RE(Regular Expression),它的主要功能是文本查询和字符串操作,它可以匹配一个文本的字符和字符集,达到数据过滤的效果。

      字符分为普通字符和元字符两种。普通字符,例如a、b、1、2等,元字符,例如*、^、[]等,以下是各个元字符代表的含义:

    元字符 含义
    * 0个或多个在*之前的普通字符(hel*o)
    . 任意匹配字符(hell.)
    ^ 匹配行首,或后面字符的非(^Hello,以Hello开头)
    $ 匹配行尾(bye$,以bye结尾;^$,空行;^.$,只匹配一个字符的行)
    [] 匹配字符集([0-9]、[a-z]、[A-Z]、[^a-c]匹配非a-c范围的字符)
    匹配一个元字符的特殊含义(.)
    <> 精确匹配符号(<the>,精确匹配字符串the)
    {n} 匹配全面字符出现n次(Jo{3}b,匹配字符串“Jooob”)
    {n,} 匹配全面字符至少出现n次((Jo{3,}b,匹配字符串中的o至少出现3次))
    {n,m} 匹配全面字符出现n~m次(Jo{3,6},匹配字符串中的o出现次数在3-6之间)
    匹配0个或1个它前面的字符(Jo?b,匹配的字符o出现0次或1次)
    + 匹配1个或多个它前面的字符(Jo+b,匹配的字符o至少出现一次)
    () 通常结合|使用,re(a|o|e)d,匹配a、o、e中的任意一个字符
    | 用于连接多个正则表达式,也可作为管道符用
    {} 可以将多个正则表达式写入{}之间,可以匹配其中的任意表达式

    例:

    精确匹配:

    [root@localhost Desktop]# grep -n '<world>' scripts/a.txt
    2:echo "Hello world"
    14:-----hello world     `
    15:Hello world

    [root@localhost Desktop]# grep -w world scripts/a.txt
    echo "Hello world"
    -----hello world        `
    Hello world

    或:

    匹配规则“|”,需要与-E结合使用

    [root@localhost Desktop]# grep -nE "java|jd" scripts/a.txt
    8:/java/
    13:www.jd.cn

    POSIX字符

    类名 含义
    [:upper:] 表示大写字母A-Z
    [:lower:] 表示小写字母a-z
    [:digit:] 表示阿拉伯数字0-9
    [:alnum:] 表示大小写字母或阿拉伯数字
    [:space:] 表示空格或Tab
    [:alpha:] 表示大小写字母

    例:[root@localhost Desktop]# grep -n [[:upper:]] scripts/a.txt
      2:echo "Hello world"
      15:Hello world
      16:I am Spal

    没有做不到,只有坚持不到
  • 相关阅读:
    Azure 媒体服务的 RTMP 支持和实时编码器
    在_Linux_中如何使用_gdb_调试_C_程序
    你刚吃的兰州牛肉面,背后就藏着大数据
    《C++覆辙录》——1.9:使用糟糕的语言
    老司机带你用MaxCompute和表格存储玩转车联网数据
    快速部署rabbitMQ教程
    《第一本Docker书(修订版)》——1.3 能用Docker做什么
    《第一本Docker书(修订版)》——第1章_简介_1.1Docker简介
    【DockerCon2017最新技术解读】Docker最新特性介绍
    【DockerCon2017最新技术解读】如何在阿里云一键部署高可用的Kubernetes集群
  • 原文地址:https://www.cnblogs.com/confident1012/p/6039798.html
Copyright © 2011-2022 走看看