Russian Qt Forum
Ноябрь 22, 2024, 18:33 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Можно ли проверить регуляркой, что строка состоит только из заданных символов?  (Прочитано 2717 раз)
mal
Гость
« : Май 08, 2018, 17:07 »

Привет всем.

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

Можно пробежать по каждому символу  в строке, и проверить на соответствие заданным  символам.
Но мне кажется  это как то топорно.
Можно ли сделать эту проверку регуляркой используя QRegExp?
Если   да  подскажите как?
Спасибо
Записан
mal
Гость
« Ответ #1 : Май 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();
}

Проблема решена.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #2 : Май 09, 2018, 00:01 »

только лучше тогда использовать + вместо * в регулярке, иначе пустая строка тоже будет подходить
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.044 секунд. Запросов: 22.