crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

RazrFalcon
  опции профиля:
сообщение 28.12.2012, 23:13
Сообщение #1


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


Нужен аналог contains(), но который бы возвращал найденный текст, а не bool.

Пока использую:
qDebug() << QString(str).remove(QString(str).remove(QRegExp("[0-9\\.]")));
Но о производительности можно забыть...

Сообщение отредактировал RazrFalcon - 28.12.2012, 23:15
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов (1 - 2)
iReset
  опции профиля:
сообщение 29.12.2012, 6:10
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 178
Регистрация: 6.6.2012
Пользователь №: 3414

Спасибо сказали: 23 раз(а)




Репутация:   2  


Это может показаться странным, но посмотри в сторону QRegExp :)
Для приведенного примера это может быть что-то вроде:
QRegExp re ("[0-9\\.]+");
if (re.indexIn (str) >= 0)
  qDebug() << re.cap (0);


Сообщение отредактировал iReset - 29.12.2012, 8:35
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 29.12.2012, 17:12
Сообщение #3


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


Интересный вариант, совсем про него забыл из-за его громоздкости.

Пока остановился на:
qDebug() << str.mid(0, str.indexOf(QRegExp("[0-9\\.]+"), 1));


PS: в данном случае нужный текст возвращается с нулевой позиции

Сообщение отредактировал RazrFalcon - 29.12.2012, 17:13
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 24.5.2025, 11:27