Ленивые квантификаторы

Имеется такое регулярное выражение:

(?(?<=\[){"index":".+?","text":"((?!e).)*?"},?|,?{"index":".+?","text":"((?!e).)*?"}) 

Главная часть:

{"index":".+?","text":"((?!e).)*?"}

Где я пытаюсь найти такой элемент, в тексте которого нет символа e.

Пытаюсь найти совпадение в такой строке:

[{"index":"1","text":"Hello"},{"index":"2","text":"Bye"},{"index":"3","text":"15"}]

Должно подходить только "{"index":"3","text":"15"}", так как там нет символа "e" в тексте, но .+? выделает весь текст, хоть он и ленивый. Почему так?
У меня есть предположение, что так происходит из-за того, что +? пытается найти такое совпадение, при котором остаток паттерна тоже будет подходить, то есть идёт до самого конца. Как этого избежать?


Ответы (0 шт):