Как сделать ленивую выборку в регулярке?

Рейтинг: 0Ответов: 1Опубликовано: 13.09.2014

Есть текст

<name>Иванов</name><family>Сергей</family><otch>Петрович</otch><age>37</age><name>Васечкин</name><family>Юрий</family><otch>Антонович</otch><age>16</age><name>Яковлев</name><family>Павел</family><otch>Александрович</otch><age>25</age><total>115</total>

Как выделить этот промежуток:
http://joxi.ru/gkrDpqjNH9erpX.png?d=

Пытался сделать этой регуляркой

((?<=<name).+?(?<=</total>))

Выделяет весь текст почему-то.

Ответы

▲ 1
(<name>[А-Яа-я]+</name>(<family>[А-Яа-я]+</family>)?(<otch>[А-Яа-я]+</otch>)?(<age>\d+</age>)?<total>\d+</total>)

Так пойдет?

(<name>[А-Яа-я]+</name>(<family>[А-Яа-я]+</family>)?(<otch>[А-Яа-я]+</otch>)?(<age>\d+</age>)?(?=<total>))

Или так, если последний тег не нужен.