Russian Qt Forum

Qt => Вопросы новичков => Тема начата: digwnews от Июля 17, 2011, 18:45



Название: Регулярные выражения
Отправлено: digwnews от Июля 17, 2011, 18:45
Проблема с парсингом текста xml.
Нужно выдернуть содержимое между <first-name> и </first-name>.
Только с помощью регэкспов, классы для работы с xml не подходят.

делаю так:
QRegExp rx("<first-name>(.*)</first-name>");
rx.indexIn(ui->textEdit->toPlainText());
QString captured = rx.cap(1);

Но получается если вот такое содержимое:
Код:
<first-name>need</first-name>
hjbrh
hytj
hhjjjyghh
<first-name>nnneeddd</first-name>

То я получу:
Код:
need</first-name>
hjbrh
hytj
hhjjjyghh
<first-name>nnneeddd
А нужно:
Код:
need

То есть выдирание по минимуму. В перле есть специальный спецификатор для этого. Здесь я этого не нашёл.
Как решить эту проблему?
Спасибо.


Название: Re: Регулярные выражения
Отправлено: m_ax от Июля 17, 2011, 18:56
У QRegExp тоже есть:
void   setMinimal (bool minimal)


Название: Re: Регулярные выражения
Отправлено: digwnews от Июля 17, 2011, 19:04
Точно, помогло.
Большое спасибо.