zoukankan      html  css  js  c++  java
  • egrep及扩展正则表达式 与正则表达式不同处

    egrep及扩展正则表达式与正则表达式不同处

    正则表达式有两类,分为基本正则表达式和扩展正则表达式,是使用命令egrep来使用扩展正则表达式,它与grep很多功能相同,仅在元字符上实现了些扩展扩展,在元字符的表示上与基本正则表达式略不同。

     

    1.命令格式:

    egrep [option] pattern file

    2.命令功能:

    用于过滤/搜索的特定字符。可使用扩展正则表达式能多种命令配合使用,使用上十分灵活

    3.命令参数:   

       egrep等同于grep -E选项

       扩展正则表达式的元字符:

                    字符匹配:

    字符匹配:

    .    #匹配单个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。

    []   #匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。  

    [^]  #匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。

    次数匹配:

    *    #匹配零个或多个先前字符。如:'*grep'匹配所有一个或多个空格后紧跟grep的行。 

    ?  #匹配其前面出现的字符0次或1次。如:'x?y'匹配x出现一次或者不出现的行。

    +     #匹配其前面的字符出现至少一次。如:'x+y'匹配x出现最少一次的行。

    {m}  #匹配其前面的字符至少m次;如:'0{5}'匹配包含5个o的行。

    {m,}  #重复字符x,至少m次,如:'o{5,}'匹配至少有5个o的行。

    {m,n}:匹配其前面的字符至少m次,至多n次;o{5,10}'匹配至少有5-10个o的行。

    .* :匹配任意长度的任意字符

    位置锚定:

    $    #行尾锚定 如:'grep$'匹配所有以grep结尾的行。    

    ^    #行首锚定 如:'^grep'匹配所有以grep开头的行。

    ^$   #空白行:行首与到行尾   特殊环境能用到

    <   #单词词首锚定,也可以用。如: '<grep''grep'只匹配grep单词开头的行。

    >   #词尾锚定,也可以用。如:'grep/>''grep/b'只匹配grep单词结尾的行。

    /<pattern/>  #单词锚定,只匹配出现pattern单词的行和'/bpattern/b'是一样的效果。

       #单词锁定符,如: 'grep'只匹配grep。 同/<pattern/>

    分组

    ()  #将关键字和元字符在里面分组,也支持后向引用。

    后向引用:模式中,如果使用()实现了分组,在某行文本的检查中,如果括号中的模式匹配到了某内容,次内容     后面的模式中可以被引用;1,2,3   第一个括号,第二个括号,第三个括号模式自左而右,引用第#个左括号以及与其匹配右括号之间的模式匹配到的内容。

    4.不同处

        紧紧在元字符表示上略有不同:

        在次数匹配的:?,+,{m},{m,}{m,n},分组()等等元字符表示上略有不同,使用方法都是一样的,大家可以参考另一篇博文《grep命令及基本正则表达式》

     



  • 相关阅读:
    List注意点【修改】
    最近遇到的笔试面试题(3)
    关于阅读
    各种语言
    最近遇到的笔试面试题(2)
    最近遇到的笔试面试题(1)
    5自由落体运动
    4 1000以内完数
    3水仙花数
    判断101-200之间的素数
  • 原文地址:https://www.cnblogs.com/cishi/p/1cbbb5d3020ef7cc2dbe0ecca2f0b088.html
Copyright © 2011-2022 走看看