Categories: match

cpp-regex/

Ранее мы уже выясняли, что C++ никогда не умрет , и знать низкоуровневые вещи приходится , даже если фултайм пишешь на Scala. Поэтому я решил уделять некоторое время пописыванию небольших программок на C/C++. Тем более, что с тех пор, когда я активно этим делом увлекался, прошло уже лет семь-восемь и многое сильно изменилось. Так, например, в стандартной библиотеке C++ появились регулярные выражения, пример работы с которыми и приводится в этом посте.

Рассмотрим следующую проблему. Есть сервер, на котором поднят Nginx . Этот Nginx раздает какие-то mp3-файлы. Стоит задача определить, какие файлы и сколько раз были скачаны. Возможное решение на C++:

#include <string>
#include <iostream>
#include <map>
#include <regex>
#include <algorithm>

int main ( int argc, char ** argv ) {
const std :: regex re ( » » GET (?:http://.+?/)?(.+? \ .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

admin

Share
Published by
admin
Tags: match

Recent Posts

Что такое Zulip

Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…

2 месяца ago

Что такое Zookeeper

Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…

2 месяца ago

Что такое Zimbra

Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…

2 месяца ago

Что такое Zabbix

Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…

2 месяца ago

Что такое YouTube

YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…

2 месяца ago

Что такое yota

Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…

2 месяца ago