crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Объяснение некоторых странностей при работе с QRegExp
AD
  опции профиля:
сообщение 19.9.2008, 11:50
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Сможете объяснить, почему в данном коде:
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
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


ну может подскажите, почему запятая воспринимается за элемент регэкспа?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
niXman
  опции профиля:
сообщение 19.9.2008, 21:48
Сообщение #3


Участник
**

Группа: Участник
Сообщений: 169
Регистрация: 18.6.2008
Пользователь №: 204

Спасибо сказали: 1 раз(а)




Репутация:   0  


AD, А кто такой "expression" ? Что в нем содержится?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 19.9.2008, 22:18
Сообщение #4


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


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

msl_alt - Hbar
or
gethmax(lat, lon)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
niXman
  опции профиля:
сообщение 20.9.2008, 1:33
Сообщение #5


Участник
**

Группа: Участник
Сообщений: 169
Регистрация: 18.6.2008
Пользователь №: 204

Спасибо сказали: 1 раз(а)




Репутация:   0  


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

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

Выражение ваще не верное!
Опиши подробнее - какому закону соответствует содержимое строки?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 20.9.2008, 12:05
Сообщение #6


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Я ведь описал что содержит строка. В строке какое нибудь математическое выражение. Описанные после стандартных операций имена 3 функций - это всего-навсего тоже "операции" над аргументами функции, но более сложные. Соответственно, строка должная либо содержать какие-нибудь математические действия. Как они могу выглядеть, описал в предыдущем посте.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 20.9.2008, 18:08
Сообщение #7


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


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

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.11.2024, 1:54