首页 > 其他 > 详细

正则表达式

时间:2016-03-13 06:41:02      阅读:151      评论:0      收藏:0      [点我收藏+]

正则表达式:Regula Expreession,简写为REGEXP.
 作用:能够使用一种通配符的通配机制来完成文本通配的。
 结构:由正常的文本符号和通配符以及其他格式控制符共同组成。

正则表达式分为两类:

                  一、 基本正则表达式---- grep。
                  二、扩展正则表达式 ----egrep。

一、基本正则表达式---- grep。

  grep:全局搜索正则表达式并且把能够匹配到的一行打印出来。
   作用:文本搜索工具,根据用户指定的”pattern(过滤条件)“对目标文本逐行进行匹配检查;打印出符合条件的行;


使用格式;grep  [OPTIONS]  PATTERN  [FILE...]
          常用选项:
--color=auto:对匹配到的文本着色后高亮显示。
                  -i: 不区分字母大小写。
                  -o: 仅显示匹配到的内容。
                  -v: 能够匹配到的不显示,不能够匹配到的反而显示----就叫做 反向匹配。
                  -E: 支持扩展的正则表达式;
                  -q: 静默模式,不管能否匹配得到,都不输出任何信息。
                  -e :可以同时搜索多种模式,-----多模式机制。

            技术分享

                  -f :将多模式编写在脚本中,通过greap -f  文件名   来完成搜索 。
                -A# :  显示匹配到的行和匹配到的行的下#行
                -B# :显示匹配到的行和匹配到的行的上#行。
                -C# :显示匹配到的行和匹配到的行的上#行以及下#行。                
基本正则表达式元字符:
       (1) 、 字符匹配:
                    .:匹配任意单个字符。
                    [ ]:匹配范围内的任意单个字符。
                    [^ ]:匹配范围外的任意单个字符。
                    [[:digit:]]   :表示所有数字[0-9]。

                    [[:lower:]] :表示所有小写字母等同于 [a-z]。

                    [[:upper:]] :表示所有大写字母等同于 [A-Z]。

                    [[:alpha:]]  :表示所有字母等同于 [a-zA-Z]。

                    [[:alnum:]] :表示所有字母和数字等同于 [0-9Na-zA-Z]。

                    [[:space:]] : 表示空白字符。

                    [[:punct:]] :    表示标定符号。

                    [[:print:]] : 表示非空字符(包括空格)。

                    [[:cntrl:]] : 表示所有控制字符 。

       (2)、 匹配次数:

                    *:匹配前面的字符任意次(0,1或多次);
                    .*:任意长度的任意字符;
                    \+:匹配前面的字符至少1次;
                    \?:匹配前面的0次或1次,即前面的字符可有可无,要是有,则只能有一个。
                    \{m\}:其前面的字符出现m次,m为非负整数;
                    \{m,n\}:其前面的字符出现m次,m为非负整数;[m,n]
                        \{0,n\}:至多n次;
                        \{m,\}:至少m次;
        (3)、位置锚定:
                    限制使用模式搜索文本,限制模式所匹配到的文本只能出现于目标文本的哪个位置;
                    
                    ^:行首锚定;格式:`^PATTERN`  。
                    $:行尾锚定;格式:`PATTERN$`   。
                        ^PATTERN$:要让PATTERN完全匹配一整行。
                        ^$:空行。
                        ^[[:space:]]*$:匹配空行或空白字符 。

                        
                    \<或\b:词首锚定,用于单词模式的左侧,格式为\<PATTERN或\bPATTERN
                    \>或\b:词尾锚定,用于单词模式的右侧,格式为PATTERN\>或PATTERN\b
                        \<PATTERN\>:单词锚定;
                    
                        
          (4)、  分组与引用:
                    \(PATTERN\):将此PATTERN匹配到的字符当作一个不可侵害整体进行处理。

                    \(PATTERN\).*\1:表示引用前面的内容。                

  二、  egrep:
        
       扩展正则表达式 ----egrep。
         
      使用格式:  egrep [OPTIONS] PATTERN [FILE...]
        
            扩展正则表达式的元字符:

              
    (1) 、 字符匹配:
                    .:匹配任意单个字符。

                    |:表示符号两边都可以,例:a|b,意思是a或者b。

                    [ ]:匹配范围内的任意单个字符。
                    [^ ]:匹配范围外的任意单个字符。
                    [[:digit:]]   :表示所有数字[0-9]。

                    [[:lower:]] :表示所有小写字母等同于 [a-z]。

                    [[:upper:]] :表示所有大写字母等同于 [A-Z]。

                    [[:alpha:]]  :表示所有字母等同于 [a-zA-Z]。

                    [[:alnum:]] :表示所有字母和数字等同于 [0-9Na-zA-Z]。

                    [[:space:]] : 表示空白字符。

                    [[:punct:]] : 表示标定符号。

                    [[:print:]] : 表示非空字符(包括空格)。

                    [[:cntrl:]] : 表示所有控制字符  。


     (2)、匹配次数:

                      *:匹配前面的字符任意次(0,1或多次)。

                      ?:匹配前面的字符0次或1次。
                     +:匹配前面的字符1次或多次。
                    {m}:匹配前面的字符m次。
                    {m,n}:匹配前面的字符 至少m次,至多n次。
                      
                        
      (3)、 位置锚定:
                    ^: 行首锚定;格式:`^PATTERN`  。
                    $:行尾锚定;格式:`PATTERN$`   。                   

                     \<或\b:词首锚定,用于单词模式的左侧,格式为\<PATTERN或      \bPATTERN
                     \>或\b:词尾锚定,用于单词模式的右侧,格式为PATTERN\>或 PATTERN\b
                      \<PATTERN\>:单词锚定。                  
       (4)、分组及引用:
                 
                 (PATTERN):将此PATTERN匹配到的字符当作一个不可侵害整体进行处理;                               

        





 


本文出自 “11283309” 博客,请务必保留此出处http://11293309.blog.51cto.com/11283309/1750372

正则表达式

原文:http://11293309.blog.51cto.com/11283309/1750372

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!