crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> помогите с QRexExp
soullibra
  опции профиля:
сообщение 19.10.2009, 21:09
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 3
Регистрация: 19.10.2009
Пользователь №: 1165

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




Репутация:   0  


пытаюсь разобраться с классом 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
  опции профиля:
сообщение 19.10.2009, 21:20
Сообщение #2


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

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

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




Репутация:   34  


Глянь в сторону QRegExpValidator

Сообщение отредактировал SABROG - 19.10.2009, 21:26
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 19.10.2009, 21:33
Сообщение #3


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

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

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




Репутация:   44  


bool QRegExp::exactMatch ( const QString & str ) const
int QString::indexOf ( const QRegExp & rx, int from = 0 ) const

Сообщение отредактировал BRE - 19.10.2009, 21:41
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
soullibra
  опции профиля:
сообщение 20.10.2009, 8:44
Сообщение #4


Новичок


Группа: Новичок
Сообщений: 3
Регистрация: 19.10.2009
Пользователь №: 1165

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




Репутация:   0  


еще вопрос:
насколько я понял
QRegExp("^\\d").exactMatch(str)==true
QRegExp("\\d$").exactMatch(str)==true
QRegExp("\\d").exactMatch(str)==true

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

?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 20.10.2009, 10:26
Сообщение #5


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

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

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




Репутация:   40  


Нет, вот примерная интерпретация:
  1. от начала строки
  2. до конца строки
  3. весь текст
  4. от начала строки до конца строки
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
soullibra
  опции профиля:
сообщение 20.10.2009, 17:35
Сообщение #6


Новичок


Группа: Новичок
Сообщений: 3
Регистрация: 19.10.2009
Пользователь №: 1165

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




Репутация:   0  


Ну как я понял... 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
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 3.12.2020, 6:52