Щойно вивчив чим відрізняється 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 – гуру, гуру верстки, і технічних письменників (чи просто літературних редакторів) які б це все допомогли реалізувати.
Filed under: Кодерство, Павутина, Розмітка Tagged: JavaScript, розробка, цілі
