Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
NeoXidizer
0 / 0 / 0
Регистрация: 22.06.2012
Сообщений: 4
#1

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

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

Необходимо перенести либо из Perl, либо из PHP (код работает одинаково) функцию с регулярными выражениями на C++.
Perl:
Perl 6
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);
далее - ступор. Прошу направить
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.06.2012, 21:40     Регулярные выражения из Perl/PHP в C++
Посмотрите здесь:

[C++] Регулярные выражения C++
Регулярные выражения C++
C++ Регулярные выражения.
C++ Регулярные выражения на C++
С++ и регулярные выражения C++
C++ Регулярные выражения в с++
C++ Регулярные выражения
Регулярные выражения в g++ C++
C++ Регулярные выражения с++
C++ Регулярные выражения
C++ Регулярные выражения
C++ Регулярные выражения с++11

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт CЭксперт С++
6634 / 3825 / 502
Регистрация: 29.11.2010
Сообщений: 10,111
30.06.2012, 22:25     Регулярные выражения из Perl/PHP в C++ #2
http://www.boost.org/doc/libs/1_50_0...tml/index.html
Yandex
Объявления
30.06.2012, 22:25     Регулярные выражения из Perl/PHP в C++
Ответ Создать тему
Опции темы

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