正则表达式基础

正则表达式基础

在很多文本编辑器中,正则表达式通常被用来检查替换那些符合某个模式的文本!


 一、正则表达式基础

1.基本语法

   ①选择:|

    eg:boy|girl      表示选择boy或者是girl

   ②数量限定:*,+,?,.

    +:表示+前面的字符可以出现至少一次

        eg:goo+gle  符合的有:google,gooogle ggoogle等

    *:表示*前面的字符可以不出现或者多次出现

        eg:colou*r   符合的有:cor,coloour等

   ?:表示?前面的字符最多可以出现一次

        eg:colou?r  符合的有:color,colur,cr等

    .:表示.匹配出了\n之外的任何单字符

        eg:colou.r   符合的有:coloucr,colou1r等

 

   ③范围和优先级:()

       eg:gr(a|e)y   表示为gray|grey

       eg:(grand)?father  表示为grandfather,father

 

   ④语法

     ^:匹配输入字符串的开始位置

     $:匹配输入字符串的结束位置

     \:转义字符一样的用法

    {n}:匹配确定的n次  eg:o{2} 匹配的就是 food等

    {n,}:至少有n个匹配的

    {n,m}:最少匹配n次,最多匹配m次

    *:表示*前面的可以不出现也可以出现多次

    +:表示+前面的至少出现一次

     ?:表示?前面的最多出现一次

     ?与任意限制符匹配时则表示非贪婪匹配

     x|y:表示匹配x或者y

     [xyz]:表示匹配x或者y或者z

     [^xyz]:表示匹配未列出的任意字符,例如非x,y,z

     [a-z]:表示匹配指定范围内的任意字符

     [^a-z]:表示匹配任何不在指定范围内的任意字符

     

 

 

二、grep模式匹配命令

grep支持三种正则表达式引擎,分别的参数是:

-E:POSIX扩展正则表达式,ERE

-G:POSIX基本正则表达式,BRE

-P:Perl正则表达式,PCRE

 

 1.基本操作

    grep参数:

   -b:二进制文件

   -c:模式匹配数目

   -i:忽略大小写

   -n:行号

   -v:反选

   -r:递归

   -A n:匹配模式后面n行

   -B n:匹配模式前面n行

  --color=auto 自动颜色显示

 

2、使用正则表达式 BRE

   ①位置:

    eg:grep ‘shiyanlou’ /etc/group

   ②数量:

    eg:echo 'zero\nzo\nzoo' | grep 'z.*o'

   ③选择:

    eg:echo '1234\nabcd' | grep '[a-z]'

     与'[a-z]'意思相同的是'[[:lower:]]'

     与'[0-9]'意思相同的是'[[:digit:]]'

     与'[A-Z]'意思相同的是'[[:upper:]]'

    表示字母和数字的是'[[:alnum:]]'

    表示字母的是'[[:alpha:]]'

    表示空白键和[Tab]按键的是'[[:blank:]]'

    表示空白字节之外的其他所有按键是'[[:graph:]]'

 

3.使用正则表达式 ERE

  ①数量:

    eg:echo'zero\nzo\nzoo' | grep -E '{zo{1}}'

    表示zo开头且只出现一次的。

 

  ②选择:

   eg:echo 'w.shiyanlou.com\nw.baidu.com\nw.google.com' | grep'w\.(shiyanlou|baidu)\.com'

    输出的结果为:

    w.shiyanlou.com

    w.baidu.com

 

 

 

 

 

 

 

你可能感兴趣的:(正则表达式基础)