Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 22.06.2012
Сообщений: 4

Регулярные выражения из Perl/PHP в C++

30.06.2012, 21:40. Показов 1320. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Необходимо перенести либо из Perl, либо из PHP (код работает одинаково) функцию с регулярными выражениями на C++.
Perl:
Perl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    my $txt = $prefix.shift;
 
    $txt =~ s/\s*;\s*/;\n/g;
    $txt =~ s/^\s*//;
    $txt =~ s/ +/ /g;
    $txt =~ s/: (\d+) (\d+)/sprintf ": %2d %2d", $1, $2/ge;
 
    $txt =~ s/^2:.*\n//gm;
    $txt =~ s/^1:(.+)\n/1:$1\n2:$1\n/gm;
 
    @txt = sort {"$a\n$b" =~ /: *(\d+) .* (\d);\n.*: *(\d+) .* (\d);/ or die;!$3 <=> !$1 or $4 <=> $2 or $a cmp $b; } split /\n/, $txt;
    $txt = join "\n", @txt;
 
    return $txt;
PHP:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
        $txt = $this->prefix . $mode;
 
        $txt = preg_replace("/\s*;\s*/", ";\n", $txt);
        $txt = preg_replace("/^\s*/", "", $txt);
        $txt = preg_replace("/ +/", " ", $txt);
        $txt = preg_replace("/: (\d+) (\d+)/e", "sprintf(': %2d %2d', $1, $2)", $txt);
 
        $txt = preg_replace("/^2:.*\n/m", "", $txt);
        $txt = preg_replace("/^1:(.+)\n/m", "1:$1\n2:$1\n", $txt);
 
        $txt = explode("\n", trim($txt));
        usort($txt, function($a, $b) {
                    preg_match("/: *(\d+) .* (\d);\n.*: *(\d+) .* (\d);/", "$a\n$b", $matches) or die('AAA');
 
                    return ($ret = cmp(!$matches[3], !$matches[1])) ?
                            $ret : ( ($ret = cmp($matches[4], $matches[2])) ?
                                    $ret : strcmp($a, $b)
                            );
                }
        );
 
        return join("\n", $txt);
то, что у меня вышло на C++, используя pcrecpp.h
C++
1
2
3
4
5
    string txt = prefix + mode;
 
    pcrecpp::RE("\\s*;\\s*").Replace(";\n", &txt);
    pcrecpp::RE("^\\s*").Replace("", &txt);
    pcrecpp::RE(" +").Replace(" ", &txt);
далее - ступор. Прошу направить
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.06.2012, 21:40
Ответы с готовыми решениями:

Регулярные выражения в perl!
Ребята помогите!!!Не могу понять как из написанной строки напечатать то что написано в квадратных скобках??? $str1 = &quot;Москва...

Регулярные выражения на Perl
Здравствуйте, помогите с написание программы на Perl. Надо из текстового файла извлечь строку начинающуюся на 5) с помощью регулярных...

Регулярные выражения в PHP
С регулярными выражениями в Перл всё предельно ясно, а вот в PHP как? обратные ссылки работают? Постановка задачи: есть объем...

1
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
30.06.2012, 22:25
http://www.boost.org/doc/libs/... index.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.06.2012, 22:25
Помогаю со студенческими работами здесь

Регулярные выражения PHP
Форумчане, помогите создать 2 регулярных выражения, первое для проверки логина пользователя, а второе для проверки пароля. Логин: от 5...

Регулярные выражения php
Помогите составить регулярное выражение. Есть некий текст (вывод из терминала): 2 sh 2 sort 4...

Регулярные выражения в PHP
kak virezati iz stroki $text='&lt;table border=0 cellspacing=0 cellpadding=0 width=871 style='width:653.0pt;...

ЧПУ. Замена строк, регулярные выражения. Как правильно использовать переменную в регулярные выражения ?
Здравствуйте! Решил реализовать ЧПУ на своем сайте. Первый этап это замена всех реальных ссылок на чпу ссылки. Так вот при замене я...

PHP регулярные выражения [ replace ]
Доброго времени суток, прошу помочь с двумя кейсами по замене выражений в html коде 1 кейс - замена части html кода в изображении ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru