正则表达式:

       正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
       给定一个正则表达式和另一个字符串,我们可以达到如下的目的:
           1. 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”);
           2. 可以通过正则表达式,从字符串中获取我们想要的特定部分。
       正则表达式的特点是:
           1. 灵活性、逻辑性和功能性非常的强;
           2. 可以迅速地用极简单的方式达到字符串的复杂控制。
           3. 对于刚接触的人来说,比较晦涩难懂。
       由于正则表达式主要应用对象是文本,因此它在各种文本编辑器场合都有应用,小到著名编辑器EditPlus,大到Microsoft Word、Visual Studio等大型编辑器,都可以使用正则表达式来处理文本内容。

基本正则表达式:

 grep:根据模式去全面的搜索文本,并将符合模式的文本行显示出来
 grep [options] PATTERN [FILE...]
   -i 忽略大小写
   --colour/color 颜色显示
   -v 反向查找,显示没有被模式匹配的行
   -o 只显示被模式匹配到的字符串
    :任意长度的任意字符
    ?:任意单个字符
   -E:使用扩展正则表达式
   -A#:当某一行被显示时一同显示后边的#行
   -B#:当某一行被显示时一同显示前边的#行
例如:
    1、grep "#" /etc/passwd
          把/etc/passwd中带#的行都显示出来
    
    2、-i 忽略大小写
        grep -i "Ss" /etc/inittab
   
    3、-v 反向查找
        grep -v "#" /etc/inittab
   
    4、锚定行首
        grep "^#" /etc/passwd
          显示/etc/passwd中以#开头的行

扩展正则表达式:

  1、字符匹配:
      .:任意单个字符
    
     []:范围内
    
     [^]:范围外的
  
  
     字符集合:
        空白字符: [:space:]
         标点符号:[:punct:]
         小写字母:[:lower:]
         大写字母:[:upper:]
         大小写字母:[:alpha:]
         数字和大小写字:[:alnum:]
             数字:[:digit:]
      
    grep "^[[:digit:]]" /etc/passwd
      显示/etc/passwd中以数字开头的行
      
  
  2、次数匹配:
        *:其前面字符任意次
       
       ?:其前面字符的0次或者一次
       
       +:匹配此前面的字符至少一次     '[[:space:]]+' 至少一个空字符 
     
       {m,n}:匹配m到n次,不需要再用\ 
 
 
  3、位置锚定:
       ^:锚定行首,此字符后面的任意内容必须出现在行首  grep '^ro' /file
      
       $:锚定行尾,此字符前面的任意内容必须出现在行尾  grep 'ro$' /file
     
      ^$:空白行
     
       \<:其后面的任意字符必须作为单词首部出现
     
        \>:其前面的任意字符必须作为单词的尾部出现
    
      \<或\b:锚定词首,其后面的任意字符必须作为单词首部出现
    
      \>或\b:锚定词尾,其前面的任意字符必须作为单词的尾部出现
 
  4、分组:
      \(\)  用于分组
     
      \(ab\):ab整体可以出现1次或2次,后向引用,被前面括号括起来的内容在后面用一个符号可以重新引用
           
        \1:引用第一个左括号与之对应的右括号所括起来的所有内容