正则表达式—正则表达式详解

grep使用正则表达式进行匹配时,将大大提高效率和精准性,正则表达式概括分为基本正则表达式和扩展正则表达式。

一、基本正则表达式

  字符匹配元字符

        .         #点号匹配任意单个字符
        []        #区配中括号内的任意单个字符
        [^]        #对中括号内的字符取反,
        [:digit:]     #任意数据,相当于0-9
        [:lower:]     #任意小写字母
        [:upper:]     #任意大写字母
        [:alpha:]     #任意大小写字终
        [:alnum:]     #任意数字或字母
        [:punct:]     #任意标点符号
        [:space:]     #任意空白字符

 区配次数元字符,作用:指定前面字符要出现的次数,只表示次数

         *      #任意次,如.*表示任意字符任意次        
        \?      #0次或1次,
        \+      #至少1次
        \{m\}     #m次
        \{m,n\}     #至少m次,最多n次,\{0,n\}表示最多匹配n次,\{m,\}表示至少匹配m次

 位置锚定

        ^      #锚定行首        
        $      #锚定行尾
        \<或\b    #锚定词首
        \>或\b    #锚定词尾

 分组:将一个或多个字符,作为一个整体,并且被匹配到的字符,可以使用\1,\2进行引用

\(***\)  #***代表字符

二、扩展正则表达式

 扩展正则表达式使用grep -E

 字符匹配元字符

 .
[]
[^]

  次数匹配

 *
 ?
 +
{m}
{m,n}

位置锚定

#跟标准正则式一致

分组及后向引用

()   #分组
\1   #对匹配内容进行引用

原创文章,作者:N21-沉舟,如若转载,请注明出处:http://www.178linux.com/21097

(0)
N21-沉舟N21-沉舟
上一篇 2016-07-04 11:27
下一篇 2016-07-04 11:28

相关推荐

  • N25-第三周作业

    第三周作业 1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 ~]#who | cut -d' ' -f 1 | sort | uniq 2、取出最后登录到当前系统的用户的相关信息。 ~]#who |tail -1 3、取出当前系统上被用户当作其默认shell的最多的那个shell。 ~]#cat…

    Linux干货 2016-12-18
  • 文本处理三剑客之grep

    grep命令基本用法 1、grep正则表达式(对文本行进行搜索过滤) 格式:grep [option] PATTERN [FILE…] option: -i:忽略大小写 -v:取反,显示未被匹配到的pattern -n:显示匹配的行号 -c:统计匹配的行数 -o: 只显示匹配到的pattern -q: 静默,不予显示 -A#:after,匹配到的行再向后…

    Linux干货 2017-07-19
  • RAID+LVM详解

                                        一.RAID篇 一.什么是RAID   磁盘阵列全名是『Redundant Arrays…

    Linux干货 2016-09-07
  • Linux运维学习历程-第六天-Linux重定向和管道

    Linux运维学习历程-第六天-Linux重定向和管道 2 本章内容我们将学习linux中的重定向和管道两大用法   I/O输入与输出设备   重定向   管道   tee命令与tr命令 一、I/O设备   1、什么是I/O设备   管理和控制计算机的所有输入/输出(I/O)设备是操作系统…

    Linux干货 2016-08-03
  • HAproxy对wordpress的代理

    一,实验环境 网络拓扑结构 Web2,master是centos7.3 Web1,backup是centos6.8 客服端的window主机首win7 所有的主机通过switch相连,处于172.18.0.0/16的网段中 二,安装的软件 使用wordpress版本4.3.1 Web1安装httpd,php,php-mysql Web2安装nfs-utils…

    Linux干货 2017-05-17
  • 五种开源协议的比较(BSD,GPL,LGPL,Apache,BSD)

    BSD开源协议(original BSD license、FreeBSD license、Original BSD license) BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。 但”为所欲为”的前提当你发布使用了BSD协议的代码,或则以BSD协议代码…

    Linux干货 2016-01-16