shell编程基础【六】---正则表达式

shell编程基础七---正则表达式
2011-04-04 15:37

正则表达式:

        正则表达式就是用某种模式去匹配一类字符串的一个公式

        正则表达式是通过正则表达式引擎来实现,它是解释正则表达式的基础软件

 

        LINUX中,常用的正则表达式引擎有两种:基本正则表达式(BRE)、扩展正则表达式(ERE)

 

        大多数LINUX程序符合扩展正则表达式,但有些程序(如sed)只符合ERE的子集。

 

正则表达式的基础

        普通字符(无特殊含义)和元字符(有特殊含义)

 

        正则表达式区分大小写

元字符

    基本正则

        .       匹配单个字符

        *       匹配0个或多个字符

        ^       开始处

        $       结尾

        []      字符范围

        

    扩展正则

        ?       零个或一个字符

        +      一个或多个字符

        {}      用于指定出现次数

        |       正则表达式作逻辑或

        ()      分组

 

    其它(很多软件不支持)      

        \< \>  匹配单词的开始和结束

        \( \)   分组

    例:

          ^   以什么开头(^一定要放在开始处,放在其它位置就作普通字符了)

                ll | grep ^d  中显示目录 

                cat /etc/passwd | sed -n '/^r/p'  

 

                echo "This ^ is a test" | sed -n '/s ^/p'  -- ^作普通字符,没出

现在最前

                This ^ is a test

 

                echo "This ^ is a test" | sed -n '/^ i/p'  -- 不是普通字符了

 

        

          $ 结尾(要放在后面)

                显示系统中不能登录的用户                

                cat /etc/passwd | sed -n '/nologin$/p'

 

            ^$  空行

                

        [root@t176 script]# cat test.txt | sed -n '/^this is a test$/p' --只包

        this is a test

 

            [YyNn0-9] 

 

常见的正则表达式:

        /^$/            空行

        /^.*$/          整行

        

    特殊字符类

        [[:alpha:]]     任意字母

        [[:alnum:]]             任意字母和数字

        [[:blank:]]             空格或tab

        [[:digit:]]             数字

        [[:lower:]]             小写字母

        [[:print:]]             任意可打印字符

        [[:space:]]             空格

        [[:upper:]]             大写字母


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值