Russian Qt Forum

Qt => Вопросы новичков => Тема начата: mal от Май 08, 2018, 17:07



Название: Можно ли проверить регуляркой, что строка состоит только из заданных символов?
Отправлено: mal от Май 08, 2018, 17:07
Привет всем.

Дано: строка QString
Дан набор символов  допустим 'X' , 'Y' и  '-'
Например
XXX---XXYYX   =>- результат проверки true
XXX---X+YYX  =>  результат проверки false

Можно пробежать по каждому символу  в строке, и проверить на соответствие заданным  символам.
Но мне кажется  это как то топорно.
Можно ли сделать эту проверку регуляркой используя QRegExp?
Если   да  подскажите как?
Спасибо


Название: Re: Можно ли проверить регуляркой, что строка состоит только из заданных символов?
Отправлено: mal от Май 08, 2018, 18:51
Получилось как то так

bool MyClass::is_match(const QString str_in)
{
    QRegularExpression re("^[-XY]*$" );
    auto match = re.match( str_in );
    qDebug() << ( match.hasMatch() ? "   matched" : "mismatched" ) << ":" << str_in;
    return match.hasMatch();
}

Проблема решена.


Название: Re: Можно ли проверить регуляркой, что строка состоит только из заданных символов?
Отправлено: kambala от Май 09, 2018, 00:01
только лучше тогда использовать + вместо * в регулярке, иначе пустая строка тоже будет подходить