Какая самая короткая запись для этого регулярного выражения?

#regex

#регулярное выражение

Вопрос:

Мы определили, что это регулярное выражение работает для проверки определенного поля, но хотелось бы, чтобы оно было короче, поскольку оно будет повторяться множество раз:

 DDdddDddD-ddd 
  

Какова самая короткая нотация, которая по-прежнему подтверждала бы то же самое, что и приведенное выше регулярное выражение?

Комментарии:

1. «Регулярное выражение» слишком общее. Какого рода регулярное выражение?

2. Зачем вам вообще повторять какой-либо код множество раз? СУХО.

3. Это «-» должно быть буквальным тире? Если это так, то его следует экранировать «-»

4. @eds Тире находится за пределами символьного класса, поэтому нет необходимости экранировать его.

5. @eds: его следует экранировать, только если оно заключено в квадратные скобки, чтобы избежать значения диапазона символов.

Ответ №1:

На самом деле не короче, но, возможно, более читабельна.

 D{2}d{3}Dd{2}D-d{3}
  

Ответ №2:

Я не знаю, короче ли это, но это определенно легче читать:

 D{2}d{3}Dd{2}D-d{3}
  

Ответ №3:

DDd{3}DddD-d{3} — лишь незначительно короче.

Легче читать, хотя и длиннее: D{2}d{3}Dd{2}D-d{3}

Ответ №4:

Как насчет

 D{2}d{3}Dd{2}D-d{3} 
  

Ответ №5:

Поскольку D{2} — это 5 символов, это короче:

 DDd{3}DddD-d{3}
  

Ответ №6:

Другое решение, той же длины, но группирует 3 символа, которые повторяются дважды

 D{2}d(d{2}D){2}-d{3}