Pull to refresh

Comments 20

Мощная картинка для привлечения внимания :) Осторожно, может засосать!
А если кого-то всё же засосало, то есть замечательный сайт — regexcrossword.com
Спасибо тебе, добрый человек! Зашел собственно задать этот вопрос и получить этот ответ )
Если меня не глючит, кроссворд с КДПВ не имеет решений: регулярка «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 регулярках делать разбор, например, валидного набора объявлений переменных с тем, чтобы регулярка падала ровно на месте первой синтаксической ошибки — вот это ад и израиль, никогда не делайте таких вещей в реальных проектах.
Вот код если кому интересно
Навскидку выглядит так, будто список realTypes не нужен.
Всегда есть простор для оптимизации, мне надо было сдать побыстрее

Может профи подскажут, как разбить текст по n символов, но чтобы слова, точки и запятые оставались на своих местах? Или тут одной регуляркой не обойтись?

разбить текст по n символов, но чтобы слова, точки и запятые оставались на своих местах
Я даже не понимаю, что здесь требуется.
1. Разбить текст, например, 10 символов максимальная длина части.
2. Запятые, точки и тд должны прилипать к словам, а не уходить в следующую часть.
Пример: Очень, длинный. Текст.
Итог: 1. Очень, 2. длинный. 3. Текст.
Sign up to leave a comment.