solovyov.net

RegExp

Позаминулого вересня я виступав на JS fwdays'20, яку зробили онлайн-конфою, і ми зробили там фінт вухами: мені Андрій Листочкин ставив питання від людей до мого докладу — бо самому собі задавати не дуже. Ну і навпаки, я ставив питання йому — і, власне, тому послухав його доповідь. Доповідь була про регулярні вирази, ну типу \d{4}-\w+, оце все, ну прямо лікнеп такий.

Я такий: Андрій, який сенс у тій доповіді, це ж типу на годину читання доки? А він мені каже: ти знаєш, в регекспів така погана репутація, що панове фронтендщики геть всі їх не знають.

Чому взагалі це згадалося — останнім часом з купи напрямків якісь срачі за регулярки лізуть. І я, чесно кажучи, прозріваю. Бо регулярки це офігенний інструмент.

Я навчився регуляркам ще на першому курсі, майже 20 років тому, і відтоді юзав їх дуже ефективно тисячі разів. Життя програміста дуже часто пов'язане з текстом, і простір між "розділи по пробілу" та "пора вже писати справжній парсер" — величезний. Простір, у якому, власне, і сидять регулярки, бо іфи та цикли заплутають куди швидше невеликої регулярки. Це вже не кажучи про те, що "справжній парсер" зазвичай куди більше часу і коду відійме.

І регулярки є всюди. Перейменування файлів у Total Commander? Заміна тексту у редакторі? В Excel? Знайти необхідне посилання серед сотень інших в джаваскриптовій консолі? Вичепити з опису транзакції ім'я?

Об'єктивно кажучи — це один з найкорисніших інструментів з народженних програмуванням. Навіть для не-програмістів.

А дурна слава йде через те, що під час розквіту Perl'a забагато людей настільки звикли використовувати регулярки, що застосовували їх навіть там, де їм не місце. Звідти анекдот "в хлопчика була проблема, він вирішив заюзати регулярку і тепер в нього дві проблеми".

Моя думка з цього приводу така: доки ти не навчився використовувати їх корисно, ходити та пропагувати "ой ні регулярки то погано" — це святкування невігластва.

(@ tg)