Russian Qt Forum

Qt => Общие вопросы => Тема начата: zodiac от Октябрь 04, 2007, 19:12



Название: QRegExp
Отправлено: zodiac от Октябрь 04, 2007, 19:12
Имеется строка:
echo ("sss");
echo ("sss");
Имеется регексп:
QRegExp rx("^(.*);\\n");

Как мне брать по 1 echo ("sss"); ? А то регексп вовращает:
echo ("sss");
echo ("sss")


Название: Re: QRegExp
Отправлено: Tonal от Октябрь 04, 2007, 19:51
QRegExp rx("^([^;]*);\\n");
Может всё таки проще тупо на строки побить?


Название: Re: QRegExp
Отправлено: zodiac от Октябрь 04, 2007, 20:18
Щас из
echo ("sss");
echo ("sss");
Показывает только первую, что нормально. Но как получить вторую?


Название: Re: QRegExp
Отправлено: Icoz от Октябрь 04, 2007, 21:56
Вместо \\n на конце поставь $. Вот так:
Код:
QRegExp rx("^([^;]*);$");


Название: Re: QRegExp
Отправлено: zodiac от Октябрь 05, 2007, 12:58
Хм.. нет. У меня есть QTextEdit. Можно ли с него как-то по 1 линии вытаскивать?
Просто я делаю так:
   countline = 0;
   QRegExp rx("^([^\\n]*);\\n");
   int pos = 0;
   while ((pos = rx.indexIn(txt_in->toPlainText(), pos)) != -1)
   {
      ++countline;
      pos += rx.matchedLength();
      QMessageBox::information(0, "!!!", QString::number(pos));
   }
pos выводится 1 раз. даже если в TextEdit засунуть:
echo ("sssss");
echo ("wqqq");

Как быть?


Название: Re: QRegExp
Отправлено: zodiac от Октябрь 05, 2007, 16:11
разобрался со всем и даже больше