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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Регулярные выражения  (Прочитано 3311 раз)
phpCoder
Гость
« : Февраль 13, 2015, 09:47 »

Добрый день.
Сделал программу, которая сохраняет введенные регэкспы пользователем в INI файл (через QSettings, в винде). Все регулярки рабочие и ошибок в них нет.
Так вот когда я их считывают через QSettings из настроечного файла и вставляю в QRegularExpression, то они не работают.
Если открыть INI файл, скопировать выражение, убрав при этом лишние экранирующие символы, которые вставляет туда QSettings, в непосредственно в код программы записать - то все работает.

Вопрос: че за хрень? Может кто сталкивался? Что делать?
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #1 : Февраль 13, 2015, 10:00 »

Посмотрите дебагером, что у вас приходит из ini
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #2 : Февраль 13, 2015, 11:36 »

А зачем сохраняешь/читаешь строкой, а не сразу QRegularExpression Непонимающий
Записан

Qt 5.11/4.8.7 (X11/Win)
phpCoder
Гость
« Ответ #3 : Февраль 13, 2015, 12:06 »

Все, нашел причину.
В файл надо сохранять текст выражения такой же, как используется в коде PHP, т.е. без дополнительных слешей как в C++ (из-за того, что только двойная кавычка означает строку). Т.е сохранять надо это:
Код
PHP
[a-z" ]\d+
а не это:
Код
C++ (Qt)
[a-z\" ]\\d+
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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