Разница между регулярным выражением [A-z] и [a-zA-Z]
Я использую регулярное выражение для программирования валидатора ввода для текстового поля, где мне нужны только алфавитные символы. Мне было интересно, были ли [A-z]
и [a-zA-Z]
эквивалентными или были различия в производительности.
Я продолжаю читать [a-zA-Z]
в моих поисках и не упоминаю [A-z]
.
Я использую java String.matches(regex)
.
Ответы
Ответ 1
[Az]
будет соответствовать символам ASCII в диапазоне от A
до z
, а [a-zA-Z]
будет соответствовать символам ASCII в диапазоне от A
до Z
и в диапазоне от a
до z
. На первый взгляд, это может показаться эквивалентным - однако, если вы посмотрите на эту таблицу символов ASCII, вы увидите, что Az
включает в себя несколько других символов. В частности, это [
, \
, ]
, ^
, _
и '
(что вам явно не нужно).
Ответ 2
Аг соответствует совпадению "от" до "z" AZ "A" до "Z" Az соответствует всем этим, а также символам между "Z" и "a", которые являются [] ^/_ `
Обратитесь к http://www.asciitable.com/
Ответ 3
Посмотрите таблицу ASCII. Вы увидите, что между Z
и a
есть несколько символов, поэтому вы будете соответствовать больше, чем вы намерены.
Ответ 4
Когда вы посмотрите на таблицу ASCII, вы увидите следующее:
A = 65
Z = 90
a = 97
z = 122
Итак, [A-z]
будет соответствовать каждому символу от 65 до 122. Сюда также входят следующие символы (91 -> 96
):
[\]^_'
Это означает, что [A-Za-z]
будет соответствовать только алфавиту, без дополнительных символов выше.
Ответ 5
Квадратные скобки создают класс символов, а дефис является сокращением для добавления каждого символа между двумя предоставленными символами. т.е. [A-F]
можно записать [ABCDEF]
.
Класс символов [A-z]
будет соответствовать каждому символу между этими символами, который в ASCII включает в себя некоторые другие символы, такие как '[', '\' и ']'.
Альтернативой заданию обоих случаев было бы установить регулярное выражение нечувствительным к регистру с помощью модификатора /i
.
Ответ 6
Взгляните на диаграмму ASCII (на которой основаны Java-символы): имеется довольно много знаков препинания, расположенных между Z и, а именно:
[\]^ _`
Ответ 7
[A-Za-Z]
e.g User Can Enter any small small-character from a to z OR A to Z Any UPPERCase
Character
[Az] Соответствует символу в диапазоне от "A" до "z" (код символа от 65 до 122)
Что такое характер
Символ - это любая буква, цифра, пробел, знак пунктуации или символ, который можно набрать на компьютере. Например, слово "компьютер" состоит из восьми символов.
что такое цифра
Любая из цифр от 0 до 9
Что такое письмо
Вот письмо:
Что такое Alphabat
Алфавит представляет собой комбинацию букв. Вот алфавит: ABCDEFGHIJKLMNOPQRSTUVWXYZ
Я очень рекомендую просто прокрутить это, если вы только начинаете
https://en.wikipedia.org/wiki/Regular_expression
Практика здесь
https://regexr.com/
Если вы ищете регулярное выражение Java
https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html