Мне нужно проверить, соответствуют ли строки определенному формату идентификатора.
Формат идентификатора следующий:
aBcDe-fghIj-KLmno-pQRsT-uVWxy
Последовательностьиз пяти блоков по пять букв в верхнем или нижнем регистре, разделенных одной чертой.
У меня есть следующее регулярное выражение, которое работает:
string idFormat = "[a-zA-Z]{5}[-]{1}[a-zA-Z]{5}[-]{1}[a-zA-Z]{5}[-]{1}[a-zA-Z]{5}[-]{1}[a-zA-Z]{5}";
Обратите внимание, что нет завершающей черты, новсе блоки внутри идентификатора имеют одинаковый формат.Поэтому я хотел бы иметь возможность представлять эту последовательность из четырех блоков с завершающей чертой внутри регулярного выражения и избегать дублирования.
Я пробовал следующее, но это не работает:
string idFormat = "[[a-zA-Z]{5}[-]{1}]{4}[a-zA-Z]{5}";
Как мне сократить это регулярное выражение и избавиться от дублированных частей?
Каков наилучший способ гарантировать, что каждый блок также не содержит чисел?
Редактировать:
Спасибо за ответы, теперь я понимаю группировку в регулярных выражениях.
Я провожу несколько тестов с регулярным выражением, актуальны следующие:
Тест 1: aBcDe-fghIj-KLmno-pQRsT-uVWxy
Тест 2: abcde-fghij-klmno-pqrst-uvwxy
При выполнении следующего регулярного выражения оба теста проходят:
^([a-zA-Z]{5}-){4}[a-zA-Z]{5}$
Со следующим регулярным выражением testОшибка 1:
^([a-z]{5}-){4}[a-z]{5}$
В нескольких ответах говорилось, что нормально использовать AZ при использовании az, но это нормально, но в этом случае оно не работает.