首页 > 系统服务 > 详细

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

时间:2016-07-14 15:58:30      阅读:255      评论:0      收藏:0      [点我收藏+]

  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的区别

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

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