данного содержания:отрицательный предпросмотр, кажется, соответствует тому, что он не должен
hello bob
hello my name is bob
Я пытаюсь соответствовать hello bob
с использованием отрицательного предпросмотра. Регулярное выражение hello.*(?!my name is).*bob
соответствует обеим линиям. Регулярное выражение hello .*(?!my name is) .*bob
соответствует второй строке.
Как я могу совместить только первую строку, и почему на самом деле отрицательный взгляд соответствует линии, с которой он не должен совпадать? Что я делаю не так?
Спасибо, это работает. Можете ли вы объяснить, почему. * Жадный до того, как негативный взгляд заставил его сломаться? – jrahhali
Ваше оригинальное регулярное выражение говорит: «Я хочу« привет », за которым следует что-либо, а не« мое имя », за которым следует что-нибудь, а затем« bob ». В этом случае вы получаете« привет », за которым следует что-то - все, что есть «мое имя». После этого нет «моего имени», так что вы получите матч. –