Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
58 / 62 / 34
Регистрация: 14.03.2014
Сообщений: 933

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

24.05.2017, 21:44. Показов 407. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
На просторах интернета нашел вот такой код. Кто подскажет как проверить его работу? Не очень понимаю что он хочет на вход.
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
#include <string>
#include <iostream>
#include <map>
#include <regex>
#include <algorithm>
 
int main(int argc, char** argv) {
    const std::regex re(""GET(? : https ? ://.+?/)?(.+?\\.mp3) "
        "HTTP/1\\.[01]" \\d{ 3 } (\\d + )");
  std::map<std::string, std::pair<long, long>> stat;
  for(std::string line; std::getline(std::cin, line); ) {
    std::smatch match;
    if(std::regex_search(line, match, re)) {
      const std::string fname = match[1];
      long size = atol(match[2].str().c_str());
      auto it = stat.find(fname);
      if(it == stat.end()) { // not found
        stat[fname] = std::pair<long, long>(size, size);
      } else {
        auto pair = stat[fname];
        long sum = pair.first;
        long max = pair.second;
        sum += size;
        max = std::max(max, size);
        stat[fname] = std::pair<long, long>(sum, max);
      }
    }
  }
 
  for(auto& it: stat) {
    auto& key = it.first;
    auto& value = it.second;
    long sum = value.first;
    long max = std::max(value.second, 1L); // avoid division by zero
    double downloads = (double)sum / (double)max;
    std::cout << "Key: " << key << " downloads: " << downloads
              << " (max size: " << max << ")" << std::endl;
  }
}
Ссылки наверное нельзя вставлять могу только процитировать:
Кликните здесь для просмотра всего текста
Рассмотрим следующую проблему. Есть сервер, на котором поднят Nginx. Этот Nginx раздает какие-то mp3-файлы. Стоит задача определить, какие файлы и сколько раз были скачаны. Возможное решение на C++:

Кто нибудь может проверить его работоспособность на примере.

там где GET в двойных ковычках надо \ Почему то не ставится.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.05.2017, 21:44
Ответы с готовыми решениями:

Регулярные выражения
Стоит задача, проверить является ли вводимая строка заданной маской. Но маска(регулярное выражение тоже как я понял должно вводится со...

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

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

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.05.2017, 21:44
Помогаю со студенческими работами здесь

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

Регулярные выражения
Как из этой строки вытянуть png с помощью регулярки, кроме png может быть другой тип, &quot;image/&quot; всегда неизменна HTTP/1.1...

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

Регулярные выражения
Как с помощью регулярных выражения записать следующую конструкцию: '&lt;любые символы&gt;' По идее получается как-то так (&quot;^'.$'&quot;)...

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


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru