一个正则表达式是由普通字符和特殊字符组成的文字模式,将某个字符模式与所搜索的字符串进行匹配。简单的说,就是用来搜索匹配的一个很好的工具。

 正则表达式分为:基本正则表达式和扩展正则表达式两类


基本正则表达式的元字符如下:
  . 匹配任意单个字符
   *匹配前一个字符的任意次
  .*任意长度的任意字符
  []指定范围内的任意单个字符

  a\{m,n\}a这个字符至少出现m次,最多出现n
  a\{m,\}a这个字符至少出现m次,
  a\{0,n\}a这个字符最多出现n
  ?匹配前一个字符出现0次或1其次

锚定符:
  
    ^锚定行首
    $锚定行尾
   ^$锚定空白行
   \<锚定词首
   \>锚定词尾
引用:
  \(\) 
 
接下来给每个元字符配备一个例子
.
正则表达式基本用法_正则表达式
上图“ . ” 匹配任意单个字符,rootr/ft中的o/f,都属于任意单个字符

*
正则表达式基本用法_正则表达式_02
上图星号“*”匹配b任意次,也可以是0次,如图中的ac

.*
正则表达式基本用法_正则表达式_03
上图是以r开头t结尾,中间是任意字符
第一行开头就是root,已经匹配完了,但是最后又以t结尾,这个称为贪婪模式,尽量匹配到最长

正则表达式基本用法_正则表达式_04
上图表示以r开头以t结尾中间为任意小写字母

    \{m,n\}
正则表达式基本用法_正则表达式_05
表示图上b至少显示1次,最多显示两次的行

\{m,\}
正则表达式基本用法_正则表达式_06
    上图表示以r开头t结尾,中间的小写字母至少出现两次的行

\{0,n\}
正则表达式基本用法_正则表达式_07
表示b至少出现0次,最后出现2次的行
grep的选项
    -v: 对结果去反
例: 
正则表达式基本用法_正则表达式_08
这个是空白至少出现1次的,图中红色标记都是空白
反之  -v  grep  -v  "[[:space:]]\{1,\}"  /etc/passwd

锚定符:
^
正则表达式基本用法_正则表达式_09
上图中显示以root开头的行
 
$
正则表达式基本用法_正则表达式_10
显示以n结尾的行

^$
正则表达式基本用法_正则表达式_11
显示空白行
 
\<
正则表达式基本用法_正则表达式_12
显示以r开头的单词

\>
正则表达式基本用法_正则表达式_13
显示以r结尾的单词

\(\)
正则表达式基本用法_正则表达式_14
上图a为文件    1用来匹配括号里的l..e  
表示以l..e开头后面跟任意字符任意次,并且以r结尾的行

扩展正则表达式元字符:
    ( )
    {}
    +: 次数匹配,匹配其前的字符至少1次;
    |或者 

使用扩展正则表达式格式必须为grep  -E  或者egrep 

( )
正则表达式基本用法_正则表达式_15
和正则表达式中的\\)效果一样

{}
    正则表达式基本用法_正则表达式_16
    和\{m,\}效果一样

+
正则表达式基本用法_正则表达式_17
匹配b至少出现一次
 
|
正则表达式基本用法_正则表达式_18
显示以dD开头的dog 
 
END