正则表达式:Regular Expression 

 
         是文本过滤工具,能够实现根据指定的"模式(Pattern)"逐行搜索文件内容,并将匹配到得行显示出来。
 “模式”: 是由正则表达式的元字符、其他字符组成的匹配条件
正则表达式分为:
         基本正则表达式: Basic RE
         扩展的正则表达式:Extended RE 
 
(一)基本正则表达式:
基本正则表达式元字符:
     字符匹配:
 .:       表示匹配任意单个字符
 [ ]:        匹配指定范围内的任意单个字符
 [^]:       匹配指定范围外的字符 ,意为取反
   个数匹配:
*:匹配其前的字符0,1,或多次;
         如 ab*,诸如a, ab, abbbbbbbbbbbbb都匹配,也就是a后面的b的个数可以出0次,1次,或更多
                  注意:     *仅仅指次数,不表示字符
                                   次数匹配:贪婪模式,能匹配多长就匹配多长
                                    a.*b 它将会匹配 最长的以a开始,以b结束的字符串
 
  ?:匹配其前的字符0或1次:
         
           ab?c,  ac,abc
       *? :重复任意次,
   \{m,n\}:    大于m,小于n
   \{m,\}:     至少m次
   \{0,m\}:   至多m次
   \{m\}:        m次
 
   锚定符:
 
单词锚定:
\<:      锚定词首;  \<r..t; root               
\>:      锚定词尾;  root\>
行首锚定:
^:       ^root
行尾锚定:
$:        root$
    root[[:punct:]]?$或root[[:punct:]]\{0,1\}$
    ^[[:space:]]*root
 
分组:(也叫子表达式)
           \(\),       x\(ab\)*y
 
 后向引用:
        \1:一次
        \2:二次
        \3:三次
 # grep --color=auto 'cpu' /proc/cpuinfo 高亮显示匹配字符基本
 [:SPAEC:]   空格键
 ^:     表示取反
 
(二)扩展的正则表达式:
与基本正则表达式大部分用法一致,但有部分用法精简和扩展:
下面主要说明二者的不同点:
1、用法差异:
  在扩展表达式中, 个数不再需要反斜线
      {m,n}:  至少m次,最多n次
      {m}: m次
     分组:不需要加反斜线
          ( ):      x(ab)*y
2、扩展用法:
 +:      至少一次(重复一次或多次)
或者符:两者选一的  (分支条件)
    |:   
            a|b,     abc|      abc|def, ab(c|d)ef
 
另:
       fgrep:     不解析正则表达式,直接搜索结果