[Moscow.pm] transform sort function to Schwartzian Transform ??

Denis Evdokimov evdokimov.denis на gmail.com
Пт Сен 9 09:43:12 PDT 2011


Хорошо, попытаюсь объяснить свою позицию.
[A-Z0-9]+ Вместо \w+
Оба варианта отлично читаются, как мне кажется.
Но в данном контексте использовать \w+ вредно, т.к. захватывает много лишнего
$aa ="N1089767N_7_SWOPT_03-Jul-2011_78919186.xml";
$aa =~ m/(\w+_\d+)_(\d+)-([A-Za-z]{3})-2011_(\d+)[.]xml/i;
Перым делом \w+ захватит всё до -
т.е. N1089767N_7_SWOPT_03
Что явно не то, что хотелось.
Если [A-Z0-9]+ слишком длинно, можно написать так [^_]+

Во втором случае вообще не вижу причин для недовольства.
Основная мысль - копирование одного и того же RegExp'а в несколько
мест недопустимо.

Из моего опыта могу сказать, что выносить RegExp'ы в константы/переменные,
а константы выделять в отдельный пакет - очень здравое решение.
Особенно, если для этого пакета написать юнит-тесты.


Подробная информация о списке рассылки Moscow-pm