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命令及基本正则表达式》

 



原文地址:https://www.cnblogs.com/cishi/p/1cbbb5d3020ef7cc2dbe0ecca2f0b088.html