Рефакторинг регулярных выражений

топ 100 блогов _winnie25.08.2010 Рискую быть обвинённым в капитанстве, но всё-таки. Всё-таки я часто вижу нечитабельные регулярные выражения, причем не потому, что они регулярные, а потому что автор - макака.

Копипаст в регулярных выражениях - тоже можно рефакторить и сводить к многократному использованию уже определённой абстракции.

Вот есть у нас регулярка для последовательности пробелов \s+. И есть регулярка для числа, ([-+]?[\d]+). Нам надо извлекать числа из строк вроде "+123 -123 111:222:333". Легко сочинить монстра "([-+]?[\d]+)\s+([-+]?[\d]+)\s+([-+]?[\d]+):([-+]?[\d]+):([-+]?[\d]+)". Сочинить легко, прочитать и исправить сложно. А нужно для читаемости писать код так, как он в голове, а не транслировать его в копипаст. Можно такое регулярное выражение записать вот так:

"7 7 7:7:7".replace('7', r'([-+]?[\d]+)').replace(' ', r'\s+')


Тогда проще понять что имелось ввиду, исправить регулярное выражение. Как структуру первого уровня, например заменить "7 7 7:7:7" на "7:7:7:7". Так и второго, напр. матчить не только целые числа, но и дробные 123.456.

Оставить комментарий

Архив записей в блогах:
Мне еще не очень хочется возвращаться к обычной жизни после праздников, но она сама ко мне возвращается, и уворачиваться от нее - все труднее. Решила так же вернуться к длинным и задумчивым записям в жж. Это письмо я получила как раз в последние ...
Картина призошедшего в долине Евфрата в последние несколько дней постепенно проясняется. Невзирая на вранье нашего минобороны, похоже, что обстановка на выходных была прямо противоположная заявленной. Боевики сумели сбить сирийскую оборону, и только небольшое их количество не позволило им ...
Итак сегодня в ходе так называемого супервторника Трамп выиграл праймериз в 14 штатах из 15, набрав пока 923 делегата из 1215, необходимых для того, чтобы стать официальным кандидатом от республиканской партии на пост президента США. И судя по всему он наберет недостающих делегатов в ...
пост конечно не про детскую психологию а, а скорее про мамину)Через месяц отдаем ...
Обидчивый гороскоп via Нострадамус Вообще мало внимания уделяю гороскопам, но этот пришелся не в бровь, а в глаз. Вот бида мне со знаком - под таким знаком надо женщиной рождаться ...