在 Oreilly 的书《Classic Shell Scripting》第 3.2.2.4 节“锚文本匹配”中,为什么对应的 [^] 不是正则表达式?
我不明白为什么它不是正则表达式?有人可以给我小费吗?
在 Oreilly 的书《Classic Shell Scripting》第 3.2.2.4 节“锚文本匹配”中,为什么对应的 [^] 不是正则表达式?
我不明白为什么它不是正则表达式?有人可以给我小费吗?
[]
表示一个字符类。
在字符类的上下文中,^
开头的 a 表示否定 - 也就是说,不应匹配所有以下字符。
所以,[^]
是没有意义的,所以不允许。
它实际上取决于正则表达式的味道是否[^]
有效。
在 JavaScript 中,[^]
有效并表示任意字符。但大多数其他风格规定字符类声明不能为空。
只是猜测,因为几乎没有上下文,而是[^]
一个不完整的字符类,因此不是正则表达式。[^a]
将是一个正则表达式:匹配一个不是“a”的字符。