У меня есть пример регулярного выражения, с которым я работаю, и я не понимаю, почему отрицательный взгляд не мешает совпадениям.
С этим выражением ^((?<!foo)[a-z]+ ?)+$
Я ожидаю, что следующая строка не будет соответствовать bar foobar baz
, так как есть строка foo
, а затем несколько букв после нее.
Даже просто foobar
матчей, которых я бы точно не ожидал. Я знаю, что это связано с +
после совпадений [a-z]
.
^((?<!foo)[a-z] ?)+$
соответствует fob
, но не foob
, что я и ожидал.
Что мне нужно изменить, чтобы строка bar foobar baz
не соответствовала?