grep中的正则表达式[A-z]行为

时间:2012-04-13 19:00:41

标签: regex grep

我认为[x-y]匹配从ascii代码x到y的ascii代码的所有字符。因此,[A-z]应该是65到122之间的任何字符。但是bash中的grep表示“无效范围”和[a-Z]对于所有字母都是正确的,在ascii代码中范围从97到90。

在这种情况下,grep的表现如何?通常,[x-y]与regexp中的ascii代码无关?

1 个答案:

答案 0 :(得分:2)

正则表达式(5)没有说实施任何内容。 [a-Z]也可以用其他方式解释(请参阅joe的评论)(122-65+1)= 58 != 26*2 =>如果有人按照你想要的方式实现[a-Z],你还会有其他的角色。

无论如何,底线是grep不允许它,正则表达式(5)不强制执行它。

所以只需使用[a-zA-Z]