分页: 1 / 1

方括号表达式用法的疑问?

发表于 : 2011-11-26 11:17
suanmeilizhi
不管是BRE还是ERE,都是支持方括号表达式的。如果我想将多个字符视为一个单位,[.abcd.]是可以的,所以如果我在一个文件中匹配abcd,应该可以这样

代码: 全选

grep "[[.abcd.]]" filename
但是事实上,会报错

代码: 全选

grep: Invalid collation character
是我理解错了么?正确用法应该是怎样的? :em06

Re: 方括号表达式用法的疑问?

发表于 : 2011-11-26 12:19
7rack
suanmeilizhi 写了:不管是BRE还是ERE,都是支持方括号表达式的。如果我想将多个字符视为一个单位,[.abcd.]是可以的,所以如果我在一个文件中匹配abcd,应该可以这样

代码: 全选

grep "[[.abcd.]]" filename
但是事实上,会报错

代码: 全选

grep: Invalid collation character
是我理解错了么?正确用法应该是怎样的?
为什么用[[]]呢?不知道你想要表达的是什么,也不是posix字符集,也不是[a-z]匹配其中任意一个小写字母。如果想精确匹配abcd

代码: 全选

grep '\<abcd\>' file

Re: 方括号表达式用法的疑问?

发表于 : 2011-11-26 15:35
suanmeilizhi
7rack 写了:
suanmeilizhi 写了:不管是BRE还是ERE,都是支持方括号表达式的。如果我想将多个字符视为一个单位,[.abcd.]是可以的,所以如果我在一个文件中匹配abcd,应该可以这样

代码: 全选

grep "[[.abcd.]]" filename
但是事实上,会报错

代码: 全选

grep: Invalid collation character
是我理解错了么?正确用法应该是怎样的?
为什么用[[]]呢?不知道你想要表达的是什么,也不是posix字符集,也不是[a-z]匹配其中任意一个小写字母。如果想精确匹配abcd

代码: 全选

grep '\<abcd\>' file
方括号表达式里面不是有[..]么,我就想知道这个应该怎么用,为什么我这么用不正确。。。

Re: 方括号表达式用法的疑问?

发表于 : 2011-11-27 19:35
7rack
可是你用的是

代码: 全选

[[..]]

Re: 方括号表达式用法的疑问?

发表于 : 2011-11-27 20:44
daemon11
suanmeilizhi 写了:不管是BRE还是ERE,都是支持方括号表达式的。如果我想将多个字符视为一个单位,[.abcd.]是可以的,所以如果我在一个文件中匹配abcd,应该可以这样

代码: 全选

grep "[[.abcd.]]" filename
但是事实上,会报错

代码: 全选

grep: Invalid collation character
是我理解错了么?正确用法应该是怎样的? :em06
lz ,是你理解错了
[]是只认第一个“[”与第一个“]”的