Расшифровывая простое регулярное выражение
Регулярное выражение в вопросе
(\d{3,4}[.-]?)+
Пример текста
707-7019-789
Мой прогресс до сих пор
( )+ a capturing group, capturing one or more
\d{3,4} digit, in quantities 3 or 4
[.-]? dot (or something) or hyphen, in quantities zero or one <-- this is the part I'm interested in
Насколько я понимаю, это должно совпадать с 3- или 4-значным числом, за которым следует точка (или что-либо еще, поскольку точка соответствует чему-либо) или дефис, объединенный в группу, один или несколько раз. Почему это не соответствует
707+123-4567
затем?
3 ответа
.
в группе персонажей []
это просто буквальный .
, оно не имеет особого значения "что-нибудь". [.-]?
означает "точка или дефис или ничего", потому что вся группа становится необязательной с помощью ?
,
Скобки удаляют функциональность точки. Скобки означают "Диапазон"/"Класс персонажа". Таким образом, вы говорите "Выбрать из списка / диапазона / класса персонажей". Вы не говорите "выбрать из списка" что-нибудь "- (что-либо является обычным значением.)
[.-]?
Что это означает буквально:
класс персонажа [.-]
- Совпадение только с одним из следующих символов:
.
а также-
в прямом смысле.
ленивый квантификатор ?
- Повторите последний токен от 0 до 1 раза, как можно меньше раз.