• 正则表达式


    目录

    一、概述

    二、基本正则表达式

     1、元字符

     2、表示次数

     3、位置锚定

     4、分组

    三、拓展正则表达式

    四、grep命令

    五、正则表达式实验


    一、概述

        正则表达式由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能,类似于增强版的通配符功能,但与通配符不同,通配符功能是用来处理文件名,而正则表达式是处理文本内容中字符,使用正则表达式后面一般要跟上" "。

        正则表达式被很多命令程序和开发语言所广泛支持:vim, less,grep,sed,awk, nginx,mysql 等。

    二、基本正则表达式

     1、元字符

    元字符不表示本来的含义,在正则表达式中有特殊含义的字符,用来表示控制或统配的功能。

    .   匹配任意单个字符,可以是一个汉字 ,也可以是空格。例:grep  "r..t"  /etc/passwd

    [   ]   匹配指定范围内的任意单个字符。

    [ ^  ]   匹配指定范围外的任意单个字符,示例:[^zhou] 

     2、表示次数

    *   匹配*前面字符的任意次,包括0次到无数次

    .*   匹配任意长度的任意字符,不包括0次

    \?   匹配其前面的字符出现0次或1次,表示可有可无

    \+   匹配其前面的字符出现至少1次,即>=1

    \{n\} 匹配前面的字符n次

    \{n,m\}  匹配前面的字符至少n次,至多m次

    \{,m\}   匹配前面的字符至多m次,即<=m

    \{n,\}   匹配前面的字符至少n次,即>=n

     3、位置锚定

    ^   表示行首锚定,用于最左侧

    $   表示行尾锚定,用于最右侧

    ^PATTERN$   用于匹配整行,例:^bash$表示这一行只有bash才能匹配出,包含空格也不行

    ^$   表示空行

    ^[[:space:]]*$   表示空白行

    \< 或 \b   匹配字符串词首,用于单词的左侧

    \> 或 \b   匹配字符串词尾,用于单词的右侧

    \bPATTERN\b   匹配整个单词

     4、分组

    用()括号将多个字符捆绑在一起,当作一个整体处理,如:(root)

    \| 表示或者

    三、拓展正则表达式

    使用grep 命令时,默认不支持拓展正则表达式。使用grep -E 或者 egrop 才能支持拓展,作用是去掉部分\。

    四、grep命令

     grep命令格式 :grep  [选项] ... 查找条件  目标文件

    选项:

    -m :匹配n行后停止

    -v :取反

    -i :忽略大小写

    -n :显示匹配的行号

    -c :只显示匹配的行数

    -o :只显示匹配内容

    -q :静默输出,不把匹配到的内容输出

    -A :after,显示匹配内容的后n行

    -B :before,显示匹配内容的前n行

    -C :context,显示匹配内容的前后n行

    -e  :实现多个选项的逻辑或 关系

    -w :匹配整个单词

    -f :匹配两个文件的相同部分,以第一个文件匹配第二个文件

    -r :递归,快速搜索目录

    五、正则表达式实验

    1、使用数组提取IP地址

    2、表示qq号

    3、表示邮箱

    4、表示手机号

  • 相关阅读:
    php简单年龄计算器案例
    “顾客第一”的理念在地方政府仍然适用
    HI3559AV100 GPIO配置和操作(二)
    Windows:Docker安装
    Python调用Prometheus监控数据并计算
    帆软 多条件参数动态查询,有参数查没参数为空
    EC11编码器编码使用
    图像阈值分割(一)
    搭建自己的SSR
    SSM、工厂模式和spring的IoC操作
  • 原文地址:https://blog.csdn.net/lcy913/article/details/134651380