#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}