Это распространенная ошибка - неправильно утверждать утверждения.Если вы хотите использовать lookahead, шаблон выглядит примерно так:
^(?!.*paragraph$).*$
Это соответствует ( как видно на rubular.com ):
something something para
paragraph something something
Ноне совпадает:
something paragraph
Таким образом, ключевое отличие здесь в том, что мы начинаем смотреть в начало строки, прежде чем мы сопоставим .*
(или .{0,1000}
втвой случай).Конечно, то, что мы ищем, это не просто paragraph$
, а скорее .*paragraph$
.
Тем не менее, чтобы проверить, что строка не заканчивается чем-то конечной длины, посмотрите назад, когда это поддерживаетсяявляется наиболее естественным решением.
^.*$(?<!paragraph)