Chinaunix

标题: grep后的正则表达式中的*,+怎么用 [打印本页]

作者: cuisharp    时间: 2004-12-20 23:37
标题: grep后的正则表达式中的*,+怎么用
我自己试,所以就表达式简化了,只是匹配hosts文件中IP地址的第一段:
  1. $grep '^[0-9]+\.' /etc/hosts
复制代码

这样试后什么都不会出,我想可能是+前要加上\,
  1. $grep '^[0-9]\+\.' /etc/hosts
复制代码

这样试,到是出来了,请往下看,如果我把+换成*,应该也是一样的,+是{1,},*是{0,},都应该可以配匹IP地址的第一段:
  1. $grep '^[0-9]\*\.' /etc/hosts
复制代码

这回到是什么都不出了,又错了??我又把*前的\去了:
  1. $grep '^[0-9]*\.' /etc/hosts
复制代码

他又出回了,这应该是加\还是应该不加呀??

还有看wingger的十二问的帖子中的grep,说grep后的正则表达式最好加上''(单引号),可是她那帖子中一会儿''(单引号),一会儿""(双引号),why?除了单引号完全关闭转意,双引号关闭大部分转意,在这里,还有什么别的区别吗?
作者: acange    时间: 2004-12-21 00:11
标题: grep后的正则表达式中的*,+怎么用
+? (...|...) belong to extend Regular expression.

You can use
      $egrep '^[0-9]+\.' /etc/hosts
or: $grep '^[0-9][0-9]*\.' /etc/hosts
作者: 寂寞烈火    时间: 2004-12-21 00:39
标题: grep后的正则表达式中的*,+怎么用
egrep or grep -E




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2