正则表达式 [A-z] 和 [a-zA-Z] 之间的区别

2022-08-31 12:13:03

我正在使用正则表达式为只想要字母字符的文本框编程输入验证程序。我想知道是否和是等效的,或者性能方面是否存在差异。[A-z][a-zA-Z]

我继续阅读我的搜索,没有提到.[a-zA-Z][A-z]

我正在使用java的.String.matches(regex)


答案 1

[A-z]将匹配范围为 从 到 的 ASCII 字符,同时将匹配范围为 从 到 范围为 从 到 的 ASCII 字符。乍一看,这似乎是等效的 - 但是,如果您查看此ASCII字符,您将看到它包括其他几个字符。具体来说,它们是 、 、 、 和 (您显然不想要的)。Az[a-zA-Z]AZazA-z[\]^_`


答案 2

当您查看 ASCII 表时,您将看到以下内容:

A = 65
Z = 90
a = 97
z = 122

因此,将匹配从65到122的每个字符。这也包括以下字符 ():[A-z]91 -> 96

[\]^_`

这意味着将仅匹配字母表,而不匹配上面的额外字符。[A-Za-z]