• 正则表达式


    正则表达式就是根据特点的字符和表达式文件内容的匹配

    因为通配符和正则表达式的表达式有很多相同但是用法不同,所以这里阐述一下区别

    通配符和正则表达式的区别

    *:匹配任意一个或者多个字符

    ?:匹配任意一个字符

    [ ]:可以是范围匹配也可以是单个字符

    以上是通配符的一系列表达式

    正则表达式元字符

    .:匹配任意单个字符,可以是一个汉字

    转义符:\

    单个 . 就是匹配多个字符,加上\,经过转义,' \ .' 就是改变了原来 . 的含义,就是一个单个的 . 进行匹配

    ():分组 

    [ ]:匹配任意范围内的单个字符

    [a-z]

    [A-Z]

    [0-9]

    使用正则表达式一定要把匹配内容引起来(" '')

    [^a-z]:取反

    [[:blank:]] 匹配空格或者制表符

    红色为空格

    [:space:] :空格 tab键 换行符 回车 各种类型的空白

    [:cntrl:] 退格,删除

    匹配内容可以写在一起

    正则表达式中的基本表达式

    *:匹配前面的字符任意次,包括0次,尽可能长的匹配

    第一行匹配的是g,但是google的对应匹配项是go,不符合,所以无法匹配,转而后面匹配成功

    第二行之所以能完全匹配成功因为*前面的匹配项和原文一致,所以可以完全匹配

    .*:匹配前面的字符任意次,但是不包括0次,也就是匹配所有

    .*不包括0,所以第一行没有o,则就不匹配

    *和.*的区别:.*没有就是没有,没有就匹配失败(因为不包括0 ),*是即使没有也要匹配出来(因为包括0 )

    \ +:匹配前面出现的字符,至少出现一次,也就是>=1

    \?:匹配前面的字符出现0次,或者1次,有且只有一次

    \ {n \ }:匹配前面出现的字符等于几次

    多了少了都不行

    \ {m,n \ }:匹配前面出现的字符,最少m次,最多n次

    \ {,n \ }:匹配前面的字符最多就n次,没有也算

    \ {n, \ }:匹配前面的字符最少N次,只要连续出现n次,后面都算

    正则表达式匹配出ifconfig ens33中的IP地址

    \.的作用就是转义符

    位置锁定

    ^:行首锚定,以什么为开头

    $:行尾锚定,以什么为结尾

    ^root$:匹配行,单独的一行只有root

    ^$:空白行

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

    过滤/etc/fstab当中#开头的行

    第一个#是以【】开头

    第二个#是取反

    \ < 或者 \b 词首锚定 用于匹配单词模式的左侧

    \ > 或者 \b 词尾锚定 用于匹配单词模式的右侧

    左边包含所有匹配,

    右边包含匹配的一半

    \broot\b:匹配整个单词

    \ < root \ >

    分组以及逻辑或

    ():分组

    \ |:逻辑或

    ab不是连续出现,所以无法匹配

    每个go都出现过一次

    前面的go匹配一次和后面的gle

    1或者2abc

    grep -E 扩展正则表达式

    |:表示逻辑或

    egrep 也可以做扩展正则表达式

  • 相关阅读:
    155. Min Stack
    什么是媒体邀约?邀请媒体的流程
    数据结构学习系列之单向链表的清空与销毁
    MindSpore基础教程:LeNet-5 神经网络在MindSpore中的实现与训练
    用队列实现栈-力扣
    【VMware vSAN】使用命令行从vSAN集群中移除ESXi主机并加入到新的vSAN集群。
    Shifu+WasmEdge:物联网数据轻松“瘦身”
    Google guava之Multimap简介说明
    编辑器的一些碎碎念
    如何快速接手做到一半的项目?
  • 原文地址:https://blog.csdn.net/qq_51506982/article/details/133281129