在Oreilly的书“Classic Shell Scripting”一节中,3.2.2.4“锚定文本匹配” 为什么相应的[^]不是正则表达式?
我不明白为什么它不是正则表达式?有人可以给我一个提示吗?
答案 0 :(得分:5)
[]
表示一个角色类。
在字符类的上下文中,开头的^
表示否定 - 也就是说,所有跟随字符应该不匹配。< / p>
所以,[^]
毫无意义,因此不允许。
答案 1 :(得分:4)
实际上,取决于正则表达式的风格,[^]
是否有效。
在JavaScript中,[^]
有效并表示任意字符。但是大多数其他风格都要求字符类声明不能为空。
答案 2 :(得分:2)
猜测,因为上下文很少,但[^]
是一个不完整的字符类,因此不是正则表达式。 [^a]
将是正则表达式:匹配不是'a'的字符。