为什么[^]不是有效的正则表达式?

时间:2013-01-05 08:33:42

标签: regex

在Oreilly的书“Classic Shell Scripting”一节中,3.2.2.4“锚定文本匹配” 为什么相应的[^]不是正则表达式?

我不明白为什么它不是正则表达式?有人可以给我一个提示吗?

3 个答案:

答案 0 :(得分:5)

[]表示一个角色类。

在字符类的上下文中,开头的^表示否定 - 也就是说,所有跟随字符应该匹配。< / p>

所以,[^]毫无意义,因此不允许。

答案 1 :(得分:4)

实际上,取决于正则表达式的风格,[^]是否有效。

在JavaScript中,[^]有效并表示任意字符。但是大多数其他风格都要求字符类声明不能为空。

答案 2 :(得分:2)

猜测,因为上下文很少,但[^]是一个不完整的字符类,因此不是正则表达式。 [^a]将是正则表达式:匹配不是'a'的字符。