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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
gerda92
0 / 0 / 0
Регистрация: 05.01.2013
Сообщений: 31
#1

Регулярные выражения - C++

08.05.2013, 14:27. Просмотров 1971. Ответов 11
Метки нет (Все метки)

Может кто нибудь подсказать реализацию регулярных выражений на С/С++?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2013, 14:27     Регулярные выражения
Посмотрите здесь:

Регулярные выражения - C++
Как записать строки у тегов <c></c> и <v></v>? <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <worksheet...

регулярные выражения - C++
прочитал статю http://www.opennet.ru/base/dev/pcre_cpp.txt.html про регулярные выражения в c++ неужели там мноо кода нужно писать? ...

[C++] Регулярные выражения - C++
Знаю что в стандарте С нет регулярных выражений. Хочу попробывать собрать простую функцию поиска по шаблону регулярных выражений. ...

Регулярные выражения - C++
Привет помогите составить регулярное выражение, чтобы парсить такую строку: , , результатом должно быть: a hello world any ...

Регулярные выражения - C++
Здравствуйте, Надо заменить в тексте номер телефона формата (012) 345-67-89 на +380 12 345 67 89. Помогите, пожалуйста, как должны...

Регулярные выражения - C++
Ребят, у меня тут проблемы. В файле input.txt есть строчки, в которых нужно найти вес, т.е., например, 221 kg, 45g и отправить их в аутпут....

Регулярные выражения. - C++
Здравствуйте всем! Имеется массив строк. Надо написать программу с функцией реализующей выявления соответствия между шаблоном допустим...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ssXXss
264 / 186 / 10
Регистрация: 15.01.2011
Сообщений: 668
08.05.2013, 14:48     Регулярные выражения #2
статья про Boost.Regex
Dmitriy_M
1341 / 1222 / 112
Регистрация: 20.03.2009
Сообщений: 4,393
Записей в блоге: 11
08.05.2013, 14:52     Регулярные выражения #3
Цитата Сообщение от gerda92 Посмотреть сообщение
Может кто нибудь подсказать реализацию регулярных выражений на С/С++?
В C++11 есть встроенная поддержка регулярных выражений.
gazlan
3130 / 1905 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
08.05.2013, 15:59     Регулярные выражения #4
Миллионы ссылок в Google, включая PCRE, re2c и знаменитую библиотеку Спенсера.

https://www.google.ru/search?q=regex+c%2B%2B+source

About 4,740,000 results (0.12 seconds)
gerda92
0 / 0 / 0
Регистрация: 05.01.2013
Сообщений: 31
08.05.2013, 21:54  [ТС]     Регулярные выражения #5
пишу на Codeblocks е
пример кода:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string>
#include <regex>
 
int main ()
{
  std::string s ("this subject has a submarine as a subsequence");
  std::smatch m;
  std::regex e ("\\b(sub)([^ ]*)");   // matches words beginning by "sub"
 
  std::cout << "Target sequence: " << s << std::endl;
  std::cout << "Regular expression: /\\b(sub)([^ ]*)/" << std::endl;
  std::cout << "The following matches and submatches were found:" << std::endl;
 
  while (std::regex_search (s,m,e)) {
    for (auto x:m) std::cout << x << " ";
    std::cout << std::endl;
    s = m.suffix().str();
  }
 
  return 0;
}
выдает ошибки:
C++
1
2
3
#error This file requires compiler and library support for the upcoming \
ISO C++ standard, C++0x. This support is currently experimental, and must be \
enabled with the -std=c++0x or -std=gnu++0x compiler options.
error: 'smatch' is not a member of 'std'

Добавлено через 1 час 17 минут
up_

Добавлено через 1 час 24 минуты
с этим разобралась
кому интересно

Добавлено через 1 минуту
http://www.cyberforum.ru/blogs/136792/blog1060.html

Добавлено через 1 минуту
выходит следующая ошибка
Linking console executable: bin\Debug\44.exe
c:/program files (x86)/codeblocks/mingw/bin/../lib/gcc/mingw32/4.4.1/../../../../mingw32/bin/ld.exe: C:\Boost152\lib: No such file: Permission denied
collect2: ld returned 1 exit status

Добавлено через 3 минуты
сам код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string>
#include <boost\regex.hpp>
using namespace boost;
int main ()
{
  std::string s ("this subject has a submarine as a subsequence");
  boost::smatch m;
  boost::regex e ("\\b(sub)([^ ]*)");   // matches words beginning by "sub"
//std::__search_n()
  std::cout << "Target sequence: " << s << std::endl;
  std::cout << "Regular expression: /\\b(sub)([^ ]*)/" << std::endl;
  std::cout << "The following matches and submatches were found:" << std::endl;
 
  while (boost::regex_search (s,m,e)) {
    for (int i=0;i<100;i++) std::cout << i << " ";
    std::cout << std::endl;
    s = m.suffix().str();
  }
 
  return 0;
}
Добавлено через 1 час 10 минут
спасибо разобралась
gerda92
0 / 0 / 0
Регистрация: 05.01.2013
Сообщений: 31
09.05.2013, 14:27  [ТС]     Регулярные выражения #6
Может ли кто-нибудь помочь пример ограничения, выводится должны только цифры находящиеся в квадратных скобках, где могут присутствовать также ".", "?","!" и т. д.
Avazart
Эксперт С++
7122 / 5299 / 273
Регистрация: 10.12.2010
Сообщений: 23,452
Записей в блоге: 17
09.05.2013, 14:40     Регулярные выражения #7
Регуляркой как-то так \[[0-9\.\?\!]+\]

Но опять зависит от того что используешь
gerda92
0 / 0 / 0
Регистрация: 05.01.2013
Сообщений: 31
09.05.2013, 15:07  [ТС]     Регулярные выражения #8
допустим выводиться должны только вещественные числа, т.е числа с точкой?
Avazart
Эксперт С++
7122 / 5299 / 273
Регистрация: 10.12.2010
Сообщений: 23,452
Записей в блоге: 17
09.05.2013, 15:08     Регулярные выражения #9
А что ты используешь ? boost/regex ?
gerda92
0 / 0 / 0
Регистрация: 05.01.2013
Сообщений: 31
09.05.2013, 17:32  [ТС]     Регулярные выражения #10
например:
C++
1
2
std::string txt = "[10] 21 15 [2.9]";
    boost::regex reg("\[[0-9.]+\]");
?
должно выводиться только [2.9]
Avazart
Эксперт С++
7122 / 5299 / 273
Регистрация: 10.12.2010
Сообщений: 23,452
Записей в блоге: 17
09.05.2013, 17:52     Регулярные выражения #11
C++
1
2
std::string txt = "[10] 21 15 [2.9]";
boost::regex reg("\\[\\d+\\.\\d*\\]");
Добавлено через 14 минут
http://regexpr.ru/?pattern=%2F\[\d%2B\.\d*\]%2F&subject=10]+21+[55.11]+15+[2.9]+1.5
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.05.2013, 20:49     Регулярные выражения
Еще ссылки по теме:

Регулярные выражения - C++
Можете подсказать что это значит? &quot;Max-Forwards*(\d{3,}|7)&quot; я без понятия что это и откуда это( Добавлено через 4 минуты я уже...

Регулярные выражения на C++ - C++
Здраствуйте, возникла необходимость использовать регурные выражения в Си++. Первое что пришло в голову переписать все на Qt например,...

Регулярные выражения - C++
Составить регулярное выражение, пропускающее строки, содержащие хотя бы по разу каждую из трех первых букв вашей фамилии(Например, фамилия...

С++ и регулярные выражения - C++
С++ и регулярные выражения - возможно ли ето? Какие есть библиотеки или что-то в етом роде?

Регулярные выражения в с++ - C++
Рылся рылся, нигде не нашел... Кто нибудь, объясните: 1) как установить эту библиотеку Regex. 2) Как заставить её работать. 3) И...


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

Или воспользуйтесь поиском по форуму:
gerda92
0 / 0 / 0
Регистрация: 05.01.2013
Сообщений: 31
09.05.2013, 20:49  [ТС]     Регулярные выражения #12
может кто-нибудь помочь выходит ошибка:
this application has requested the runtime to terminate it in an unusual way. Please contact the application's support team for more information.
Yandex
Объявления
09.05.2013, 20:49     Регулярные выражения
Ответ Создать тему
Опции темы

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