Ленивые квантификаторы
Имеется такое регулярное выражение:
(?(?<=\[){"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" в тексте, но .+? выделает весь текст, хоть он и ленивый. Почему так?
У меня есть предположение, что так происходит из-за того, что +? пытается найти такое совпадение, при котором остаток паттерна тоже будет подходить, то есть идёт до самого конца. Как этого избежать?