Комментарии 20
Мощная картинка для привлечения внимания :) Осторожно, может засосать!А если кого-то всё же засосало, то есть замечательный сайт — regexcrossword.com
Спасибо тебе, добрый человек! Зашел собственно задать этот вопрос и получить этот ответ )
И вот ссылка на конкретно кроссворд с КДПВ: https://regexcrossword.com/playerpuzzles/8cbea27f-c4c5-4d11-a509-6a622ba01107
Если меня не глючит, кроссворд с КДПВ не имеет решений: регулярка «P+(..)\1.*» требует двух символов между последовательностью «P» и единицей, однако 1 не может появиться в 4й позиуии из-за горизонтального ограничения (O|RHH|MM)*, следовательно, во второй позиции должна быть Р, а её уже не дает поставить вторая строка (DI|NS|TH|OM)*. А в третьей позиции единица хотя и может появиться, но регулярка не дает, потому что минимум первая позиция должна быть занята символом «Р».
Имеет. Когда меня засосало в прошлый раз, я его решила.
Видимо всё-таки глючит, потому что \1
означает не единицу, а первую группу захвата (matching group) — то есть должно совпасть то же самое что совпало в (..)
\1 — это первая группа, а не строка "\1" буквально. Т.е. регулярка "P+(..)\1.*" означает:
1) один или больше симоволов "P", затем
2) два произвольных символа, затем
3) снова те-же 2 символа из пункта 2, затем
4) любое количество произвольных символов.
Включу режим ботана-теоретика и позанудствую немного. Большинство тьюториалов по регулярным выражениям — это список обозначений и примеры с пояснениями, что в общем-то хорошо. Но мне кажется, что для достижения просветления всё-таки нужна теория: регулярные языки, конечные автоматы и вот это всё. Это важно, например, для того, чтобы понимать, какие задачи регулярками решать нельзя, чтобы не попадаться в ловушки вроде «проверить правильность расстановки скобок в выражении с помощью регулярок».
Хм, а на перловских регулярных выражениях с илайн-кодом, вероятно, все-таки можно.
То, что описывают перловские регулярные выражения, строго говоря, уже не будет являться регулярными языками (в общем случае, естественно).
помогло ли вам это знакомство в реальных проектах.
Использую регулярки в основном для поиска/автозамены специфичных токенов в каких-нибудь логах или коде. grep'ы туда же
Интересно, каких бед может натворить вещество с такой формулой?
Регулярки удобно использовать в основном для поиска/замены шаблонных конструкций, при этом желательно сохранять небольшой размер выражения, чтобы можно было потом разобраться. Мне как-то приходилось на .net регулярках делать разбор, например, валидного набора объявлений переменных с тем, чтобы регулярка падала ровно на месте первой синтаксической ошибки — вот это ад и израиль, никогда не делайте таких вещей в реальных проектах.
Вот код если кому интересно
Вот код если кому интересно
Может профи подскажут, как разбить текст по n символов, но чтобы слова, точки и запятые оставались на своих местах? Или тут одной регуляркой не обойтись?
разбить текст по n символов, но чтобы слова, точки и запятые оставались на своих местахЯ даже не понимаю, что здесь требуется.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Основы регулярных выражений в JavaScript