Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: помогите с QRexExp
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Общие вопросы
soullibra
пытаюсь разобраться с классом QRegExp
есть ли функция, которая возвращает true|false наподобии indexIn() ?
мне нужно просто проверять валидность строки регулярному выражению
чтото наподобии
if (QRegExp("^([0-9]{5,6}|VRB[0-9]{2,3})(G[0-9]{2})?(KMH|KT|MPS)([0-9]{3}V[0-9]{3})?$").indexIn(str)) != -1)
   return true;
} else {
   return false;
}

PS привык к php-му preg_match()
SABROG
Глянь в сторону QRegExpValidator
BRE
bool QRegExp::exactMatch ( const QString & str ) const
int QString::indexOf ( const QRegExp & rx, int from = 0 ) const
soullibra
еще вопрос:
насколько я понял
QRegExp("^\\d").exactMatch(str)==true
QRegExp("\\d$").exactMatch(str)==true
QRegExp("\\d").exactMatch(str)==true

все три варианта одинаковы и равносильны
QRegExp("^\\d$").indexIn(str)!=-1

?
ViGOur
Нет, вот примерная интерпретация:
  1. от начала строки
  2. до конца строки
  3. весь текст
  4. от начала строки до конца строки
soullibra
Ну как я понял... exactMatch() дословно: точно совпадает, т.е.
QRegExp("\\d").exactMatch(str) это полное соответствие str выражению "\d"
или я чтото не так понял? вроде и тесты проводил :)
например
QRegExp("1").exactMatch("1") //true
QRegExp("1").exactMatch("11") //false
QRegExp("^1").indexIn("11") //0
QRegExp("^1$").indexIn("11") //-1
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2021 IPS, Inc.