3

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

我不明白为什么它不是正则表达式?有人可以给我小费吗?

4

3 回答 3

5

[]表示一个字符类。

在字符类的上下文中,^开头的 a 表示否定 - 也就是说,不应匹配所有以下字符。

所以,[^]是没有意义的,所以不允许。

于 2013-01-05T08:37:49.467 回答
4

它实际上取决于正则表达式的味道是否[^]有效。

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

于 2013-01-05T08:56:13.607 回答
2

只是猜测,因为几乎没有上下文,而是[^]一个不完整的字符类,因此不是正则表达式。[^a]将是一个正则表达式:匹配一个不是“a”的字符。

于 2013-01-05T08:38:36.453 回答