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

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

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

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

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

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

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

Регулярные выражения с++11 - C++
Просветите, пожалуйста, как из следующей строки "123<tag>456</tag>789<tag>987</tag>654321" с помощью регулярного выражения напечатать "456...

Регулярные выражения - C++
Доброй ночи! Использую вот такой код void INITDIALOG(void* p){ char* bufer = new char; server.GetLocList(bufer); char * t =...

Регулярные выражения с++ - C++
Пользователь должен ввести строки: фамилию(первая буква должна быть заглавной), дату рождения(по форме аа.аа.аааа), состояние здоровья(good...

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

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

11
ssXXss
266 / 188 / 10
Регистрация: 15.01.2011
Сообщений: 681
08.05.2013, 14:48 #2
статья про Boost.Regex
0
Dmitriy_M
1360 / 1243 / 114
Регистрация: 20.03.2009
Сообщений: 4,449
Записей в блоге: 11
08.05.2013, 14:52 #3
Цитата Сообщение от gerda92 Посмотреть сообщение
Может кто нибудь подсказать реализацию регулярных выражений на С/С++?
В C++11 есть встроенная поддержка регулярных выражений.
0
gazlan
3133 / 1909 / 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)
0
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 минут
спасибо разобралась
0
gerda92
0 / 0 / 0
Регистрация: 05.01.2013
Сообщений: 31
09.05.2013, 14:27  [ТС] #6
Может ли кто-нибудь помочь пример ограничения, выводится должны только цифры находящиеся в квадратных скобках, где могут присутствовать также ".", "?","!" и т. д.
0
Avazart
Эксперт С++
7247 / 5419 / 297
Регистрация: 10.12.2010
Сообщений: 24,044
Записей в блоге: 17
09.05.2013, 14:40 #7
Регуляркой как-то так \[[0-9\.\?\!]+\]

Но опять зависит от того что используешь
1
gerda92
0 / 0 / 0
Регистрация: 05.01.2013
Сообщений: 31
09.05.2013, 15:07  [ТС] #8
допустим выводиться должны только вещественные числа, т.е числа с точкой?
0
Avazart
Эксперт С++
7247 / 5419 / 297
Регистрация: 10.12.2010
Сообщений: 24,044
Записей в блоге: 17
09.05.2013, 15:08 #9
А что ты используешь ? boost/regex ?
0
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]
0
Avazart
Эксперт С++
7247 / 5419 / 297
Регистрация: 10.12.2010
Сообщений: 24,044
Записей в блоге: 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
1
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.
0
09.05.2013, 20:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.05.2013, 20:49
Привет! Вот еще темы с ответами:

Регулярные выражения - C++
Помогите написать регулярку. Пишу на RE2. Если в тексте встречается ******.moikrug.ru то нужно вытащить то что под звездочками. Буду...

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

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

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


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

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

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