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

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

Форум на CrossPlatform.RU _ Qt Общие вопросы _ Объяснение некоторых странностей при работе с QRegExp

Автор: AD 19.9.2008, 11:50

Сможете объяснить, почему в данном коде:

const char* BASE_OPERATIONS = "[+-/*]|gethmax|gethaccuratly|gethmax4";

/// Разбор выражения
vector<COMPUTE*> ElemParser::parsing()
{
    vector<COMPUTE*> vc;
    QRegExp exp(BASE_OPERATIONS);
    int matched = 0;
    while((matched = exp.indexIn(expression, matched)) != -1)
    {
        QStringList l1 = exp.capturedTexts();
        for(QList<QString>::iterator iter=l1.begin(); iter!=l1.end(); ++iter)
        {
            string hes = iter -> toStdString();
            int gagaga = 9999;
        }

        matched += exp.matchedLength();
    }

    return vc;
}
строка hes отлавливает значение ","?

Автор: AD 19.9.2008, 19:55

ну может подскажите, почему запятая воспринимается за элемент регэкспа?

Автор: niXman 19.9.2008, 21:48

AD, А кто такой "expression" ? Что в нем содержится?

Автор: AD 19.9.2008, 22:18

Так это строка, которая разбирается. В ней какая -нибудь формула, подобная этой

msl_alt - Hbar
or
gethmax(lat, lon)

Автор: niXman 20.9.2008, 1:33

Цитата(AD @ 19.9.2008, 23:18) *
Так это строка, которая разбирается.

Это я понял. Интересовало содержимое строки.
const char* BASE_OPERATIONS = "[+-/*]|gethmax|gethaccuratly|gethmax4";

Выражение ваще не верное!
Опиши подробнее - какому закону соответствует содержимое строки?

Автор: AD 20.9.2008, 12:05

Я ведь описал что содержит строка. В строке какое нибудь математическое выражение. Описанные после стандартных операций имена 3 функций - это всего-навсего тоже "операции" над аргументами функции, но более сложные. Соответственно, строка должная либо содержать какие-нибудь математические действия. Как они могу выглядеть, описал в предыдущем посте.

Автор: ViGOur 20.9.2008, 18:08

AD, я же тебе уже давал ссылку на книжку по регулярным выражениям. Думаю, так как ты частенько пишешь регулярные выражение (как я понял) тебе стоит ее всетаки прочесть, чтобы знать как и что там. ;)

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