Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 1, средняя оценка - 5.00
gromo
370 / 269 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
#1

boost regex_match - Баг? - C++

08.01.2014, 00:36. Просмотров 248. Ответов 2
Метки нет (Все метки)

Снова неразрешимая проблема (
По документации, функции поиска regex_match/regex_search должны заполнять (делать не пустым) объект с результатами поиска, только если находят все/часть регулярного выражения в строке.

В этом коде ну никак не может совпадать ни часть, ни все регулярное выражение. Но объект what на выходе НЕ пустой.

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <boost/regex.hpp>
#include <iostream>
int main()  {
    using namespace std;
    using namespace boost;  cout << boolalpha;
    string s("###");
    regex e(R"_([[:alnum:]]+\.[[:alnum:]]+)_", regex_constants::extended);
    smatch what;
    cout << "Default constructed: " << what.empty() << endl;
 
    if ( regex_match(s.cbegin(), s.cend(), what, e) )
        cout <<"With regex_match: " << what.empty() << endl;
 
    cout <<"After regex_match: " << what.empty() << endl;
    return 0;
}
Вывод:
Код
 
Default constructed: true
After regex_match: false
Как видно, ветка if даже не выполнялась (что верно), но объект what модифицировался.
ЧЯДНТ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.01.2014, 00:36     boost regex_match - Баг?
Посмотрите здесь:

Segmentation Fault regex_match и regex_search - C++
Есть html страницы сайта, которые я паршу регулярками. Иногда происходит ошибка сегментации при определенном html коде. Как защититься...

Boost::async - C++
Работаю в VS2010 + boost 1.54. Есть код: #include &lt;boost/thread/future.hpp&gt; #include &lt;boost/thread.hpp&gt; ...

boost и Multithreading - C++
Подскажите, пожалуйста, как создать сервер, который принимает запросы от клиентов и отправляет каждый из них в отдельный thread. Вопрос в...

Boost::programm_options - C++
Добрый день. Подскажите пожалуйста если я задал дефолтное значение для опции, то как сделать если она задается без аргументов,...

Boost не компилируется - C++
Пытаюсь кое-что создать. Для этого пришлось воспользоваться сторонней библиотекой. Но какую бы я не скачивал (там много аналогов), во всех...

Boost и WinAPI - C++
Когда подключаю к файлу с кодом заголовок boost, все WinAPI функции в нём перестают работать #include &lt;windows.h&gt; int main() { ...

Насчет строк в boost - C++
Господа, приветствую вас. я долгие годы писал на C# И был очень удивлен, когда оказалось что стандартного типа &quot;строка&quot; в C++ нет -...

Как подключить Boost? - C++
Нужно получить список файлов в папке (кроссплатформенно), в нете все ссылаются на Boost, я пробовал понять как собрать filesystem и как...

Использование boost::normal_distribution - C++
Здравствуйте. Не могу разобраться как получить случайное нормальное распределение. Пытаюсь использовать boost::normal_distribution но...

Сортировка Boost.Bimap - C++
Недавно прочитал про Boost.Bimap. Возник вопрос, а можно ли отсортировать bimap по right? #include &lt;boost/bimap.hpp&gt; #include &lt;string&gt; ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DiffEreD
1429 / 766 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
08.01.2014, 00:45     boost regex_match - Баг? #2
Вроде все так как и в документации написано о boost::regex_match:
Postconditions: If the function returns false, then the effect on parameter m is undefined, otherwise the effects on parameter m are given in the table:
m.empty() _ false
...
gromo
370 / 269 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
08.01.2014, 00:53  [ТС]     boost regex_match - Баг? #3
DiffEreD, проглядел
Ответ Создать тему
Опции темы

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