Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
greendaizer
0 / 0 / 0
Регистрация: 20.01.2013
Сообщений: 70
1

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

28.12.2013, 05:18. Просмотров 655. Ответов 2
Метки нет (Все метки)

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

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include<iostream>
#include<regex>
#include<fstream>
 
using namespace std;
 
int main()
{
    ifstream filereader;
    ofstream filewriter;
    filereader.open("input.txt");
    filewriter.open("output.txt");
// Регулярное выражение для поиска IP-адресов
regex ipReg("\\d1+(\\.\\d+)?*\\s?(kg|g|lb|t)") ;
 
 
 
while(!filereader.eof())
    {   
// Строка для поиска
         string str;
         filereader>>str;
 
if(regex_search(str,ipReg))
{
// Создаем итератор по этой последовательности
regex_iterator<string::iterator> rit(str.begin(), str.end(), ipReg);
// Итератор за пределы последовательности
regex_iterator<string::iterator> rend;
// Перебираем все элементы
while(rit != rend)
{
// Разыменовываем(получаем экземпляр класса match_result),
//вызываем метод str(), который возвращает строку
filewriter<<rit->str() << endl;
rit++;
}
 
}
}
    return 0;
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.12.2013, 05:18
Ответы с готовыми решениями:

Регулярные выражения
Может кто нибудь подсказать реализацию регулярных выражений на С/С++?

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

Регулярные выражения
Всем доброе утро. Ребята подскажите что не так в выражении вот шаблон регулярного выражения...

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

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

2
DiffEreD
1442 / 779 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
28.12.2013, 12:48 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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
#include <iterator>
#include <fstream>
#include <string>
#include <boost/regex.hpp>
#include <windows.h>
 
int main()
{
   SetConsoleCP (1251); SetConsoleOutputCP (1251);
 
   std::ifstream ifs("D:/file.txt");
   if (!ifs.is_open())
   {
      std::cerr << "Ошибка открытия файла.\n";
      return 1;
   }
 
   using input = std::istreambuf_iterator<char>;
   const std::string text {input(ifs), input()};
 
   const boost::regex reg("(\\d+(\\.?\\d+)?\\s*(kg|g|lb|t))\\s*,");
   boost::smatch match;
   std::string::const_iterator pos = text.begin();
   while (boost::regex_search(pos, text.end(), match, reg))
   {
      if (!match.empty())
      {
         static std::ofstream ofs("D:/results.txt");
         //std::cout << "Finded: " << match[1] << std::endl;
         ofs << match[1] << "\n";
         pos = match[1].second;
      }
   }
 
   std::cout << "\n\nDone." << std::endl;
   return 0;
}
1
outoftime
║XLR8║
763 / 662 / 212
Регистрация: 25.07.2009
Сообщений: 3,320
Записей в блоге: 5
28.12.2013, 13:02 3
greendaizer, regex в STL багнутый, используй boost как в посте выше.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.12.2013, 13:02

Регулярные выражения
Как записать строки у тегов &lt;c&gt;&lt;/c&gt; и &lt;v&gt;&lt;/v&gt;? &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;...

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

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


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

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

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