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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QRegExp выбрать строки в которых отсутствует слово.  (Прочитано 2295 раз)
Privalov
Гость
« : Ноябрь 29, 2015, 19:00 »

Здравствуйте. Требуется помощь.
Есть  xml файл, требуется выбрать строки не содержащие определенного слова.

Использовал следующее выражение /<тэг(?!.*слово).*>(.*)</тэг>/.
При тестировании на сайте https://regex101.com всё прекрасно работает, а в программе нет. Проверял так же в программе qregexp-editor. Не работает подобное выражение.
Видимо это особенности синтаксиса qregexp.
Может ли кто нибудь подсказать в чём  проблема.

Строки вида - "<тэг некоторые данные слово" данные>тут данные которые нужно забрать если  в начальном тэге отсутствует слово</тэг>"

« Последнее редактирование: Ноябрь 29, 2015, 19:06 от Privalov » Записан
Cirran
Гость
« Ответ #1 : Декабрь 03, 2015, 17:15 »

Попробуйте вместо QRegExp использовать QRegularExpression, если Ваша версия Qt >= 5.0.
Цитировать
Note: In Qt 5, the new QRegularExpression class provides a Perl compatible implementation of regular expressions and is recommended in place of QRegExp.
Хотя, согласно ссылке https://bugreports.qt.io/browse/QTBUG-2371
Цитировать
Lookaheads (?=Expr) , (?!Expr) are supported by QRegExp in Qt, lookbacks (?<=Expr), (?<!Expr) aren't.
Записан
Privalov
Гость
« Ответ #2 : Декабрь 03, 2015, 17:22 »

Попробуйте вместо QRegExp использовать QRegularExpression, если Ваша версия Qt >= 5.0.
Спасибо, буду пробовать. Потом отпишусь.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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