Рефакторинг регулярных выражений
_winnie — 25.08.2010
Рискую быть обвинённым в капитанстве, но всё-таки. Всё-таки я часто
вижу нечитабельные регулярные выражения, причем не потому, что они
регулярные, а потому что автор - макака.Копипаст в регулярных выражениях - тоже можно рефакторить и сводить к многократному использованию уже определённой абстракции.
Вот есть у нас регулярка для последовательности пробелов \s+. И есть регулярка для числа, ([-+]?[\d]+). Нам надо извлекать числа из строк вроде "+123 -123 111:222:333". Легко сочинить монстра "([-+]?[\d]+)\s+([-+]?[\d]+)\s+([-+]?[\d]+):([-+]?[\d]+):([-+]?[\d]+)". Сочинить легко, прочитать и исправить сложно. А нужно для читаемости писать код так, как он в голове, а не транслировать его в копипаст. Можно такое регулярное выражение записать вот так:
Тогда проще понять что имелось ввиду, исправить регулярное выражение. Как структуру первого уровня, например заменить "7 7 7:7:7" на "7:7:7:7". Так и второго, напр. матчить не только целые числа, но и дробные 123.456.
|
|
</> |
Система управления репутацией и мониторинга СМИ и соцмедиа от СКАН-Интерфакс: обзор возможностей
К истокам журнала... Израиль улыбнул. Самая длинная прогулка по Эйлату
Про государственный переворот в Омске
Купила -таки
#ЖизньНалаживается
Сталинская мясорубка: дело альпинистов
летним утром в Ботаническом саду Латвийского университета
Как выбрать направление для путешествия с ребенком: примеры для разного

