码迷,mamicode.com
首页 > 系统相关 > 详细

Linux基础(10)论grep 与egrep的区别

时间:2016-07-14 16:01:30      阅读:308      评论:0      收藏:0      [点我收藏+]

标签:linux   正则表达式   文本匹配   grep   egrep   

  egrep或者grep -E与grep相比进行文本匹配的时候使用的扩展的正则表达式,那么扩展的正则表达式与正则表达式有什么区别呢?

  1基本的正则表达式:

  字符匹配:

  .: 任意单个字符

  []: 某一字符集中的单个字符  例如[0-9]表示任意个位数

  [^]:不属于某一字符集中的单个字符 例如[^[:space:]]表示任意非空白字符

  

  次数匹配:

  *:任意次 

  \?: 0或1次

  \{m,n\}:至少m次,至多n次;


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


  锚定:

  ^: 行首锚定

  $: 行尾锚定

  \<, \b:词首

  \>, \b:词尾

  

  元组引用:

  \(\)

  \1, \2, \3, ...

  ====================================================================================

  2.扩展的正则表达式

 

  字符匹配:

  .

  []

  [^]


  次数匹配:

  *: 匹配前面的字符任意多次

  ?: 匹配前面的字符0次或者1次

  +: 匹配其前面的字符至少1次

  {m,n} 匹配前面的字符至少m次,至多n次   注意:与基本正则表达式相比 不需要再转义


  位置锚定:

  ^  行首

  $  行尾

  \<  或者\b ###  词首 

  \>  或者 ###\b  词尾


  元组:

  ():元组  注意 :与基本正则表达式相比,不需要再转义

  \1, \2, \3, ...


  或者

  |: or   

注意:这是扩展正则表达式才有的功能 若要grep支持,必须用grep -E  

注意: 用于选择的内容必须加入到括号中

 (C|c)at: Cat或cat

  C|cat  :C 或者cat

 

  由比较可知,基本正则表达式与扩展正则表达式的区别在于

  1.次数匹配上,扩展正则表达式多了一个+代表匹配前面的字符至少一次 相当于\{1,\}

  2.扩展正则表达式{m,n}不再需要转转义

  3.扩展正则表达式的分组()也不再需要转义

  4.正则表达式多了一个或者|

  那么我们在文本模式匹配的时候可以考虑使用扩展的正则表达式,从而避免使用过多的转义字符\

  

本文出自 “厚积薄发” 博客,请务必保留此出处http://joedlut.blog.51cto.com/6570198/1826252

Linux基础(10)论grep 与egrep的区别

标签:linux   正则表达式   文本匹配   grep   egrep   

原文地址:http://joedlut.blog.51cto.com/6570198/1826252

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!