Russian Qt Forum
Май 05, 2024, 14:57 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Регулярные выражения  (Прочитано 1817 раз)
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

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

Сообщений: 2094



Просмотр профиля
« Ответ #1 : Июль 17, 2011, 18:56 »

У QRegExp тоже есть:
void   setMinimal (bool minimal)
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
digwnews
Гость
« Ответ #2 : Июль 17, 2011, 19:04 »

Точно, помогло.
Большое спасибо.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.046 секунд. Запросов: 22.