Форум программистов, компьютерный форум, киберфорум
Наши страницы
Boost C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
admsasha
23 / 23 / 6
Регистрация: 11.06.2011
Сообщений: 298
1

Boost_regex выводит не верный результат

07.12.2017, 08:06. Просмотров 941. Ответов 7
Метки нет (Все метки)

Вот простой код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
std::string getText(){
    return "/i/rarent222111/";
}
 
int main(int argc, char **argv){
    std::string folder="";
 
    boost::smatch what;
    if (boost::regex_match(getText(), what, boost::regex("^(/i/)(.*?)(/)(.*)"))){
        folder=what[2];
    }
 
    std::cout << "folder: [" << folder << "]" << std::endl;
 
    return 0;
}
почему на выводе получаю ?
Код
folder: [arent222111]
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.12.2017, 08:06
Ответы с готовыми решениями:

Не верный результат в условиях
Здравствуйте. Подскажите пожалуйста как поправить мой кривой код, чтобы...

не верный результат регулярки
&lt;?PHP $page =...

результат не верный при решении задачи
//--------------------------------------------------------------------------- ...

Не верный результат при выводе (многопоточность)
Уважаемые! Помогите разобраться, что делаю не так? Задача: Вывести 1 - 2 -...

Не верный результат при обработке одномерного массива
Написать программу по обработке одномерных массивов. Размеры массивов вводить с...

7
Peoples
1347 / 836 / 749
Регистрация: 06.02.2016
Сообщений: 2,232
Записей в блоге: 17
Завершенные тесты: 4
07.12.2017, 14:00 2
А что хотите получить?
0
admsasha
23 / 23 / 6
Регистрация: 11.06.2011
Сообщений: 298
07.12.2017, 14:02  [ТС] 3
Peoples,
Хотел
folder: [rarent222111]
0
GbaLog-
Любитель чаепитий
3166 / 1472 / 465
Регистрация: 24.08.2014
Сообщений: 5,204
Записей в блоге: 1
Завершенные тесты: 2
08.12.2017, 06:43 4
с std::regex всё работает корректно.
либо что-то вы неправильно делаете, либо можно заявлять проблему в boost.regex.
ну, либо в std::regex.
http://rextester.com/UZN61819
0
admsasha
23 / 23 / 6
Регистрация: 11.06.2011
Сообщений: 298
08.12.2017, 14:04  [ТС] 5
Цитата Сообщение от GbaLog- Посмотреть сообщение
либо что-то вы неправильно делаете,
Я привел весь код. Разве что кроме заголовков.

gcc version 6.3.0 20170516 (Raspbian 6.3.0-18+rpi1)
libboost-regex1.62.0
0
shmkv
1205 / 427 / 59
Регистрация: 21.07.2015
Сообщений: 1,112
13.12.2017, 21:38 6
Лучший ответ Сообщение было отмечено admsasha как решение

Решение

Цитата Сообщение от admsasha Посмотреть сообщение
почему на выводе получаю ?
А что угодно можешь получить, у тебя what ссылается на разрушенный string.
C++
1
2
const std::sting& text = getText();
boost::regex_match(text, what, boost::regex("^(/i/)(.*?)(/)(.*)"));
1
admsasha
23 / 23 / 6
Регистрация: 11.06.2011
Сообщений: 298
14.12.2017, 04:04  [ТС] 7
shmkv, what - это не копии, а ссылка на строку ?
0
shmkv
1205 / 427 / 59
Регистрация: 21.07.2015
Сообщений: 1,112
14.12.2017, 12:58 8
Цитата Сообщение от admsasha Посмотреть сообщение
shmkv, what - это не копии, а ссылка на строку ?
да.
1
14.12.2017, 12:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.12.2017, 12:58

Если не сложно подкорректиировать, чтобы верный результат выдавался
CLS PRINT TAB(10); e = .0001 FOR x = .2 TO 1 STEP .1 n = 1 s = 0 kol = 1...

Компилятор при делении больших чисел выдает не верный результат
Здравствуйте. Я только осваиваю азы программирования на С++. Компилятор...

Код верный, но при запуске выводит ошибку, что не может найти поле Статус
Здравствуйте, я программировала базу данных через библиотеку связи ADO связала...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru