Блоґ одного кібера

Історія хвороби контуженого інформаційним вибухом

Додзьо для регулярного ніндзя

with 7 comments

Щойно вивчив чим відрізняється negative lookbehing від negative lookahead.

Шукав всі пітонівські файли які не є скомпільованими мако файлами що містять певний шаблон. В моєму випадку – всі місця в проекті, в яких рендериться вміст листів. Написав:

    :Ack -G "(?!\.mako)\.py$" "email/[_/\w\d]+\.mako"

Не знайшов. Бачите в чому помилка? Тут я використав lookahead, а треба було lookbehind. Lookbehind пишеться так:

    :Ack -G "(?<!\.mako)\.py$" "email/[_/\w\d]+\.mako"

Хто б подумав, що треба писати так. Але тепер я вже знаю :). Ах, для тих хто не зрозумів що відбувається, ack – це типу grep.

І от в мене виникла ідея – взяти якось на вихідних і написати інтерактивний підручник регулярних виразів. Такий собі html-файлик, всередині якого в JSON записано набір уроків в такому форматі:

[
    {
        'Назва': "...",
        'Текст уроку': "...",
        'Вправи': [
            {
                'Умова': "...",
                'Корпус тексту': "...",
                'Тип вправи': 1, # пошук/заміна
                'Підрядки що потрібно отримати з домогою виразу': ["...", ...],  # якщо пошук
                'Текст що потрібно отримати в результаті': "...", # якщо заміна
                'Бали': XP, 
            },
            ...
        ]
    },
    ...
]

І тебе пускають до наступного коли ти набрав необхідну кількість балів на попередньому.

Тепер розшукую regexp – гуру, jQuery – гуру, гуру верстки, і технічних письменників (чи просто літературних редакторів) які б це все допомогли реалізувати.

Advertisements

Written by bunyk

Квітень 20, 2012 at 19:34

Відповідей: 7

Subscribe to comments with RSS.

  1. Ще посилання по темі: http://stackoverflow.com/questions/1101403/practicing-regex

    bunyk

    Квітень 20, 2012 at 21:00

  2. Мені дуже подобається стиль цього підручника.
    Можна його категоризацію та тексти взяти за основу.

    А ось вправи – це справді хороша ідея. Хороші вправи важко придумувати/шукати, тому їх як правило мало.

    В свою чергу пропоную зробити не стільки підручник, скільки безперервний потік регекспів. Замість лінійного проходження по уроках давати потік вправ (як RSS, тільки частіше) з посиланнями на “теорію”. Оформити у вигляді http://fucking-great-advice.ru/ (замість “еще совет” – “ще регексп”).

    Тобто, підручник – другорядне. Бали нафіг, хіба що лічильник правильно виконаних завдань.

    danbst

    Квітень 20, 2012 at 21:48

    • Ну, так, теорію можна і посиланнями на regexp-info. Я на ньому й вияснив два згадані терміни.

      А бали просто для того аби чотириповерхові вирази зараховувались як чотири вирази :).

      bunyk

      Квітень 20, 2012 at 21:58

    • тоді проблемою залишається написання вправ =)

      danbst

      Квітень 20, 2012 at 22:05

    • Ну, одна вправа тут описана: виберіть зі списку такі файли що мають розширення *.py, але не *.mako.py

      Я думаю основне – написати движок по типу http://regexpal.com/, і дати можливість всім бажаючим додавати туди вправи. Може з часом набереться кілька десятків.

      bunyk

      Квітень 20, 2012 at 22:09

  3. Виявляється є така наука – гейміфікація. http://habrahabr.ru/post/142466/

    bunyk

    Квітень 23, 2012 at 00:38

  4. А ще є такий кросворд: http://regexcrossword.com/

    bunyk

    Травень 18, 2015 at 14:07


Залишити відповідь

Заповніть поля нижче або авторизуйтесь клікнувши по іконці

Лого WordPress.com

Ви коментуєте, використовуючи свій обліковий запис WordPress.com. Log Out / Змінити )

Twitter picture

Ви коментуєте, використовуючи свій обліковий запис Twitter. Log Out / Змінити )

Facebook photo

Ви коментуєте, використовуючи свій обліковий запис Facebook. Log Out / Змінити )

Google+ photo

Ви коментуєте, використовуючи свій обліковий запис Google+. Log Out / Змінити )

З’єднання з %s

%d блогерам подобається це: