我认为[x-y]匹配从ascii代码x到y的ascii代码的所有字符。因此,[A-z]应该是65到122之间的任何字符。但是bash中的grep表示“无效范围”和[a-Z]对于所有字母都是正确的,在ascii代码中范围从97到90。
在这种情况下,grep的表现如何?通常,[x-y]与regexp中的ascii代码无关?
答案 0 :(得分:2)
正则表达式(5)没有说实施任何内容。 [a-Z]
也可以用其他方式解释(请参阅joe的评论)(122-65+1)= 58 != 26*2
=>如果有人按照你想要的方式实现[a-Z]
,你还会有其他的角色。
无论如何,底线是grep不允许它,正则表达式(5)不强制执行它。
所以只需使用[a-zA-Z]
。