Russian Qt Forum

Qt => Общие вопросы => Тема начата: yesrus от Март 21, 2009, 00:38



Название: QRegExp
Отправлено: yesrus от Март 21, 2009, 00:38
Здравствуйте!
Возник вопрос - как из qstring вида
Цитировать
Event: Unlink
выделить часть до знака : и после знака : (при этом после знака нужно убрать пробел) т.е.
Имеем:
Цитировать
Event: Unlink

Должны получить:
1-я строка:
Цитировать
Event
2-я строка:
Цитировать
Unlink
это нужно сделать 2-мя QRegExp с помощью cap как я понимаю..но вот сам регэксп написать не могу (.
Заранее спасибо за помощь!
qt 4.5


Название: Re: QRegExp
Отправлено: igor_bogomolov от Март 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);


Название: Re: QRegExp
Отправлено: yesrus от Март 21, 2009, 10:19
В наличии у меня уже qstringlist в котором команды от сервера(точнее блоки команд - примерно по 5 строк), и разбить надо чтобы провести конечную обработку(обработка происходит итерацией через весь список) кроме того нужно убрать пробел после двоеточия во второй части(QString::SkipEmptyParts этого не делает, он убирает только полностью пустые строки).


Название: Re: QRegExp
Отправлено: igor_bogomolov от Март 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"


Название: Re: QRegExp
Отправлено: yesrus от Март 21, 2009, 20:07
Спасибо!  :)