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

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

Войти
Регистрация
Восстановить пароль
 
vadimmelnyk
2 / 2 / 0
Регистрация: 17.12.2012
Сообщений: 13
#1

Regex в С++ - C++

02.10.2013, 03:26. Просмотров 668. Ответов 3
Метки нет (Все метки)

Здравствуйте!
Я хочу найти все вхождения подстроки типа 1[0]+1 в строку.
C++
1
2
3
4
5
6
7
std::string str =  "0011011000001";
std::regex rx   ("1[0]+1");
std::smatch res;
std::regex_search(str, res, rx);
 
for (size_t i=0; i<res.size(); i++)
std::cout<<res[i]<<std::endl;
Но код не работает. В чем может быть проблема?
Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.10.2013, 03:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Regex в С++ (C++):

std::regex и boost::regex - C++
Что-то я не пойму что реализация их различна ? #include &lt;iostream&gt; #include &lt;string&gt; //#include &lt;regex&gt; //using namespace...

regex - C++
как через регулярки подсчитать количество слов в стоке??? я пробовал так: #include &lt;iterator&gt; #include &lt;iostream&gt; #include &lt;string&gt;...

Regex в char - C++
можно ли конвертировать boost::regex в char*?

Ошибки с Regex - C++
Доброго времени суток. Понадобилось немного поработать с регулярными выражениями, но почему-то в boost и стандартной TR1 возникают...

<regex> гайд - C++
Можно ссылку на нормальный урок/инструкцию по std::regex? Сам в интернете так ничего и не нашел, с регулярками знаком по python'у.

Группировка regex - C++
Доброго времени суток, форумчане! Возникла проблема. Допустим у нас есть строка s_ip:192.168.0.100. Регулярное выражение s_ip:(+) выводит...

3
DiffEreD
1431 / 768 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
02.10.2013, 11:32 #2
Думаю, что так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
#include <boost/regex.hpp>
 
int main()
{
   const std::string s =  "0011011000001";
   const boost::regex re("10+1");
   boost::smatch matches;
 
   std::string::const_iterator pos = s.begin();
   while (boost::regex_search(pos, s.end(), matches, re))
   {
      if (!matches.empty())
      {
         std::cout << matches[0] << std::endl;
         pos = matches[0].second;
      }
   }
 
   std::cout << "\nDone." << std::endl;
   return 0;
}
1
CheshireCat
Эксперт С++
2893 / 1242 / 78
Регистрация: 27.05.2008
Сообщений: 3,389
02.10.2013, 11:48 #3
Как именно "код не работает"? И на каком компиляторе?

Я сталкивался с похожей проблемой. Код компилируется, но при попытке запустить выбрасывает исключение типа "функция не поддерживается" (точно не помню уже, время прошло...) Причина оказалась в том, что хотя в Стандарте C++11 regex появился, не все компиляторы пока еще поддерживают Стандарт в полном объеме...
1
vadimmelnyk
2 / 2 / 0
Регистрация: 17.12.2012
Сообщений: 13
02.10.2013, 12:03  [ТС] #4
Спасибо,
Ваш пример работает. Только что сам столкнулся с проблемой компилятора. Отослал задачу на проверку, а версия компилятора на сервере старая.
0
02.10.2013, 12:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.10.2013, 12:03
Привет! Вот еще темы с ответами:

regex с русскими символами - C++
Привет всем! что надо сделать чтобы работала регулярное выражение с русскими буквами ? регулярные выражение пользуюсь из boost...использую...

<regex> выборка из массива - C++
Есть char массив размерности 128 со всяким барахлом, среди которого выражение &lt;begin&gt;11100100&lt;end&gt; Как бы мне содержимое 11100100 оттуда...

[C++11] regex constructor исключение - C++
Конструктор регекса выдает какое-то исключение(перехватываю catch(...)), где можно почитать какие они вообще бывают и из-за чего? Заранее...

Создание регуляторки regex - C++
Здраствуйте. У меня тут проблема с созданием выражения, помогите пожалуйста. Сейчас само выражение у меня такое: ...


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

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

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