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