Регулярні вирази або 'виражайтесь регулярно'

На повному ходу в'їжджаємо в магію регулярних виразів, а також розважаємось з ними

Вперед!
кросворд з регулярок
Кросворд з регулярок

Яка в цьому необхідність?

Привіт, цим постом в продовження блогу-по-суботам я постараюсь описати мій досвід входження в таку цікаву річ, як регулярні вирази Regular expression або РегЕкспи.

Власне знайомство з ними почалось рік назад, коли постала необхідність змінити дизайн одного блога, в якому на той момент було пару сотень постів, оговорюсь, бложик жив на вордпресі, все звелось до банальної зміни теми. Але, як завжди але... старий шаблон через банальний баг обертав всі пікчі в постах тегами абзацу, ссилки і спану, ну і зловживання візівіг редактором.. коротше кажучи вилізло боком це в оновленому блозі, коли картинки з успіхом відвалились.

Пошук проблеми привів до бази даних, де трималася розмітка постів. І от незадача, треба було виділити певну частину коду і видалити її для кожної картинки, при чому адреси-то різні - тоді відбулсь перша зустріч з регулярними виразами, а точніше з квантифікацією. (лінивий квантифікатор натравлений на посилання зробив свою роботу гарно і база даних була в мить поправлена і історія скінчилась хепіендом). Тоді це було щось на зразок магії і я був в цьому, як кажуть "скріпт-кідді" - взяв готове рішення з стек оверфлов і примінив до своєї ситуації.

Не варто парсити хтмл розмітку з допомогою регулярних виразів, адже в ієрархії Чомського розмітка — це Контекстно-вільна граматика, а РегЕкспи — регулярна граматика.
Ну і крім того парсінг розмітки регулярками викликає в цей світ Zalgo... жарт

Не так давно приступив до систематичної прокачки скілів в яваскрипті і там таки зустрів старих друзів - регекспи! Дякуючи просто шикарному курсу по яваскриптам від Хекслет за авторством Рахіма Давлеткалієва я проникся темою регулярних виразів і прослухавши парочку лекцій ШРІ (да, саме там, лектор Макс Ширшин запропонував альтернативну влучну назву "Виражайтесь регулярно" - однозначно лайк), прочитавши пост на хабрі по регуляркам і роздрукувавши собі чіти (ловлю себе на тому, що я чітер...) приступив до випробування. В якості практичної частини був сайт http://regexone.com/ де з 20 нехитрих кроків можна вживу втямити суть. Далі в якості такої собі пісочниці пішов на http://jqexercise.droppages.com/#page-regex і там пробував власні приклади і власно писані коряві вирази. Саме "смачне" лишилось на потім, хехе.
Як ви вже здогадались, під "смачним" тут мається на увазі кросворд з регулярних виразів, його інтерактивну версію можна знайти тут http://uzer.com.ua/cross/ Як " регулярно виразився" один мій знайомий - "на вигляд люта штука".

Ну що можу сказати, тут була справа часу. Доки не здобув просвітлення, дивлячись на кросворд, справа не рухалась. Головне тут не думати про те, що варіантів може бути багато - однозначний глухий кут. Ну і варто згадати за одне "тонке місце" - зворотні ссилки, типу такого \1 примінений до якогось виразу. Їх там буквально 3-4 в кросворді і саме над ними врешті решт довелось посидіти в кінці. А так - все пройшло вдало і дуже сподобалось! Рішення кидать не буду, досить легко гуглиться, а от чіти по регуляркам в старих традиціях - да, скину. Пдф для друку скачати можна тут і тут

В процесі написання поста спало на думку пошукать ще кросвордів по регуляркам, і такі знайшлись! Хто бажає святкового новорічного кросворду по регекспам, а? )) Один, два, три

На цьому все, дякую за увагу і успіхів вам;)

Апдейт: Сайт http://regexcrossword.com/ виявився просто знахідкою, свята видались що треба)) В підбірці всього 44 кросворда, 8 таких собі тематичних блоків. в кожному від 3 до 9 рівнів складності. І тим, хто розв'язав хардкордний гексагональний крос справитись з цими буде не тк вже й складно. Єдине, що кросворд, де регулярками зашифровані міста дуже розчаровує, на пів дорозі можна вгадати слово назву міста і все.. Ну зате інші 7 рівнів просто шикосік! Рекомендую.

regexcrossword.com
Кросворди на regexcrossword.com

Поділитись в соцмережах

Сподобався пост? — розкажіть про нього своїм друзям