Chinaunix

标题: shell中 正则表达式 转义不解 [打印本页]

作者: fjmingyang    时间: 2008-04-25 22:09
标题: shell中 正则表达式 转义不解
比如  grep '[0-9]\{1,3\}'  a.txt

为什么要加那两个转义字符\呢?   单引号不是已经屏蔽了{的特殊含义了吗?
作者: 寂寞烈火    时间: 2008-04-25 22:11
原帖由 fjmingyang 于 2008-4-25 22:09 发表
比如  grep '[0-9]\{1,3\}'  a.txt

为什么要加那两个转义字符\呢?   单引号不是已经屏蔽了{的特殊含义了吗?

man grep
BTW:这里的两个\, 不是转义的意思!!!
作者: davistar    时间: 2008-04-25 22:47
在BRE中{ } + ?  等等,都是普通字符,而带斜杠版本如\{ 使之又具有了特殊含义。在某种程度上说\也启到了"转义"的作用。
具体的差别可以去google一下BRE和ERE的区别
作者: fjmingyang    时间: 2008-04-25 23:54
刚看了一下,是不是在shell中默认是 bre,
而在bre中 ?,{,(,|,+这些meta,失去了特殊含义,故需要添加\     ???
作者: waker    时间: 2008-04-26 14:16
shell把字串[0-9]\{1,3\}当参数传给grep,至于这些字符对grep有没有特殊含义,由grep自己负责




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