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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QRegExp совпадение по OR или AND  (Прочитано 2172 раз)
Astrologer
Гость
« : Октябрь 21, 2010, 14:36 »

Всем привет. Только начал знакомиться с RegExp и стоит следующая задача. Скажем есть следующие строки:

"SELECT * FROM baseTable where (
ALIAS = 'ddd' AND
)"

"SELECT * FROM baseTable where (
ALIAS = 'ddd' OR
)"

"SELECT * FROM baseTable where (
ALIAS is null
)"

"SELECT * FROM baseTable where (
base like '%one%' AND ALIAS is null
)"

Вопрос - как будет выглядеть RegExp чтобы найти AND или OR с конца строки не трогая поля? Заранее спасибо.

Что-то вроде  - найти первое совпадение and или or c конца строки не далее символа ' или слова null. Как это будет выглядеть в регулярном выражении?
« Последнее редактирование: Октябрь 21, 2010, 15:16 от Astrologer » Записан
shirushizo
Гость
« Ответ #1 : Октябрь 21, 2010, 17:48 »

Найти первое совпадение and или or c конца строки вроде так "( AND | OR)$"
А чтобы до null и ' - есть костыль: QString::split(QRegexp("( null |')",Qt::CaseInsensitive))  и ищем только в последнем элементе полученого QStringList'а...

П.с: не тестил (враги сожгли диск с последним С++), в регулярных выражениях несилен. Подойдет как временный вариант (быдлокодером не называть и больно не бить).
Записан
trot
Гость
« Ответ #2 : Октябрь 21, 2010, 18:58 »

(OR|AND)[\s]*(null[\s]*'?)?$
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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