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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QRegExp  (Прочитано 3220 раз)
yesrus
Гость
« : Март 21, 2009, 00:38 »

Здравствуйте!
Возник вопрос - как из qstring вида
Цитировать
Event: Unlink
выделить часть до знака : и после знака : (при этом после знака нужно убрать пробел) т.е.
Имеем:
Цитировать
Event: Unlink

Должны получить:
1-я строка:
Цитировать
Event
2-я строка:
Цитировать
Unlink
это нужно сделать 2-мя QRegExp с помощью cap как я понимаю..но вот сам регэксп написать не могу (.
Заранее спасибо за помощь!
qt 4.5
« Последнее редактирование: Март 21, 2009, 00:59 от yesrus » Записан
igor_bogomolov
Гость
« Ответ #1 : Март 21, 2009, 02:59 »

В данном случае проще использовать функцию
Цитировать
QStringList QString::split ( const QChar & sep, SplitBehavior behavior = KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive ) const

Код
C++ (Qt)
QString str = "Event: Unlink";
QStringList strlist = str.split(':', QString::SkipEmptyParts);
Записан
yesrus
Гость
« Ответ #2 : Март 21, 2009, 10:19 »

В наличии у меня уже qstringlist в котором команды от сервера(точнее блоки команд - примерно по 5 строк), и разбить надо чтобы провести конечную обработку(обработка происходит итерацией через весь список) кроме того нужно убрать пробел после двоеточия во второй части(QString::SkipEmptyParts этого не делает, он убирает только полностью пустые строки).
« Последнее редактирование: Март 21, 2009, 10:28 от yesrus » Записан
igor_bogomolov
Гость
« Ответ #3 : Март 21, 2009, 13:30 »

Возник вопрос - как из qstring вида
Цитировать
Event: Unlink
выделить часть до знака : и после знака : (при этом после знака нужно убрать пробел) т.е.
Имеем:
Цитировать
Event: Unlink

Должны получить:
1-я строка:
Цитировать
Event
2-я строка:
Цитировать
Unlink

Никак не пойму в чем трудность. Вы же знаете через какие символы нужно разделить строку

Код
C++ (Qt)
QString str = "Event: Unlink";
QStringList strlist = str.split(": ");
 
QStringListIterator it(strlist);
while (it.hasNext())
   qDebug() << it.next();

Еще один способ
Код
C++ (Qt)
QString sect1 = str.section(": ", 0, 0);
qDebug() << sect1;
QString sect2 = str.section(": ", 1, 2);
qDebug() << sect2;

В обоих случаях получим
Цитировать
"Event"
"Unlink"
Записан
yesrus
Гость
« Ответ #4 : Март 21, 2009, 20:07 »

Спасибо!  Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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