Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我认为 [xy] 匹配从 x 的 ascii 代码到 y 的 ascii 代码的所有字符。因此,[Az] 应该是 65 到 122 之间的任何字符。但是 bash 中的 grep 表示“无效范围”,并且 [aZ] 对所有字母都是正确的,在 ascii 代码中的范围从 97 到 90。
在这种情况下,grep 的行为究竟如何?通常, [xy] 与正则表达式中的 ascii 代码无关?
regex(5) 没有说明任何关于实现的内容。[a-Z]也可以用其他方式解释(参见 joe 的评论) => 如果有人按照您想要的方式(122-65+1)= 58 != 26*2实现,您将包括其他字符。[a-Z]
[a-Z]
(122-65+1)= 58 != 26*2
无论如何,底线是 grep 不允许它, regex(5) 不强制它。
所以只需使用[a-zA-Z].
[a-zA-Z]