Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Общие вопросы _ не работает QRegexExp

Автор: eldar85 17.5.2010, 0:47

ничего не пойму, вроде все правильно, функция всегда все находила, а тут ни в какую не хочет...
вот код:

void mainWindow::regex(QString str, QString xStr)
{
    QRegExp rx(str);
    QString prim;


             int pos = 0;

             while ((pos = rx.indexIn(xStr, pos)) != -1)
             {

                 prim = rx.cap(1);

                 pos += rx.matchedLength();
             }

    qDebug() << prim;
}


ну и вот применение:
QString fignya = "fijgeiowjgoiewj jiojgeijbio iogjeiojgieojgb igjibj jiogjirbjior jiodgjibj hash('69d58f4cd6f3bb9ddaee66e06'), dfkjgekd kdgjkedjg";
regex("hash('([a-z0-9]*)", fignya);

и нифига не находит...
и вот так пробывал:
regex("hash\('([a-z0-9]*)", fignya);

тоже все мимо... что же не так???

Автор: eldar85 17.5.2010, 1:46

вот так вот работает, но там получается два ненужных символа...

regex("hash([('0-9a-zA-Z]*)", fignya);

и на выходе:
('69d58f4cd6f3bb9ddaee66e06
блин ну если уж на то пошло то как удалить можно из строки два первых символа??? хотя конечно это как то коряво будет вообще...

я так понимаю что проблема главная в этой скобке... что с ней сделать то чтобы он ее как нужно воспринемал???

Автор: kwisp 17.5.2010, 8:40

Цитата(eldar85 @ 17.5.2010, 1:47) *
тоже все мимо... что же не так???

может
Цитата
Note: The C++ compiler transforms backslashes in strings. To include a \ in a regexp, enter it twice, i.e. \\. To match the backslash character itself, enter it four times, i.e. \\\\.


Автор: eldar85 17.5.2010, 8:49

блин, я же английский вообще мало знаю, куском понял)))
я правильно понял "нужно вместо одного два символа \\ поставить"????
сейчас попробую...

даааааааааааааа)))))))) работает!!!!!!!!!!!!!!!!!)))))))))) огромное спасибо!!!!!!!!!!!!!)))))))))

regex("hash\\('([0-9a-zA-Z]*)", fignya);

а я читал про регулярки вчера, там пишут что один обратный слышь в строке перед скобкой нужен, но то что два вообще первый раз слышу)))) спасибо!!!!)))

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)