Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / C++ Новый топик    Ответить
 Не компилируется регулярное выражение из Перл  [new]
miltorg
Member [заблокирован]

Откуда: Калининград
Сообщений: 764
Не компилируется регулярное выражение из Перл

Ни такое:
/^.*;/gm  - тут я не нашёл замену флагу m


Ни такое:

/(?<=\n).*;/g - тут скомпилировалось, но потом ругнулось по английски - что не может быть скобок


В общем то вещи существенные.

Может есть выход?
Спасибо.

Сообщение было отредактировано: 23 окт 20, 13:54
23 окт 20, 05:43    [22219227]     Ответить | Цитировать Сообщить модератору
 Re: Не компилируется регулярное выражение из Перл  [new]
miltorg
Member [заблокирован]

Откуда: Калининград
Сообщений: 764
mayton
По поводу этого https://www.sql.ru/forum/1330164/ne-kompiliruetsya-regulyarnoe-vyrazhenie-iz-perl

Надо указать компиллятор (Microsoft/GCC/clang) и библиотеку поддержки регулярок (может boost?).
Дело в том что С++ не имеет нативной поддержки regexp и любая работа с ними (как и в Java/C#)
реализуется возможностями не ЯЗЫКА а внешних библиотек.


У вас есть код под Линукс?
На Java всё работает, кстати.
23 окт 20, 11:28    [22219364]     Ответить | Цитировать Сообщить модератору
 Re: Не компилируется регулярное выражение из Перл  [new]
OoCc
Member

Откуда: с Кавказа
Сообщений: 2201
miltorg,
для перловых regex лучше использовать pcre библиотеку. ИМХО в C++ отвратительная имплементация
std::regex
23 окт 20, 12:50    [22219426]     Ответить | Цитировать Сообщить модератору
 Re: Не компилируется регулярное выражение из Перл  [new]
miltorg
Member [заблокирован]

Откуда: Калининград
Сообщений: 764
OoCc,

кода нет?
23 окт 20, 13:11    [22219457]     Ответить | Цитировать Сообщить модератору
 Re: Не компилируется регулярное выражение из Перл  [new]
OoCc
Member

Откуда: с Кавказа
Сообщений: 2201
miltorg
OoCc,

кода нет?

Это не ко мне, это к гуглу.
23 окт 20, 13:22    [22219466]     Ответить | Цитировать Сообщить модератору
 Re: Не компилируется регулярное выражение из Перл  [new]
miltorg
Member [заблокирован]

Откуда: Калининград
Сообщений: 764
OoCc,
Я с него начал.
23 окт 20, 13:24    [22219467]     Ответить | Цитировать Сообщить модератору
 Re: Не компилируется регулярное выражение из Перл  [new]
mayton
Member

Откуда: loopback
Сообщений: 49762
Вот с бустом пример есть.

https://www.boost.org/doc/libs/1_72_0/libs/regex/doc/html/boost_regex/ref/regex_match.html
23 окт 20, 13:58    [22219499]     Ответить | Цитировать Сообщить модератору
 Re: Не компилируется регулярное выражение из Перл  [new]
mayton
Member

Откуда: loopback
Сообщений: 49762
Не забудь установить буст.

sudo apt-get install libboost-all-dev
23 окт 20, 14:18    [22219513]     Ответить | Цитировать Сообщить модератору
 Re: Не компилируется регулярное выражение из Перл  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 51775

С таким темпом установки сторонних библиотек трансмогрификатор аффтара сведётся к
"установим библиотеку-интерпретатор перла и обернём исходную программу в её вызов".

Posted via ActualForum NNTP Server 1.5

23 окт 20, 14:25    [22219521]     Ответить | Цитировать Сообщить модератору
 Re: Не компилируется регулярное выражение из Перл  [new]
mayton
Member

Откуда: loopback
Сообщений: 49762
Уже обсуждали с ним это.
23 окт 20, 14:26    [22219523]     Ответить | Цитировать Сообщить модератору
 Re: Не компилируется регулярное выражение из Перл  [new]
Anatoly Moskovsky
Member

Откуда: Odessa
Сообщений: 6610
В std::regex добавили поддержку multiline начиная с C++17.
23 окт 20, 16:21    [22219645]     Ответить | Цитировать Сообщить модератору
 Re: Не компилируется регулярное выражение из Перл  [new]
miltorg
Member [заблокирован]

Откуда: Калининград
Сообщений: 764
Anatoly Moskovsky,

Дайте пожалуйста код.
Возможно я где то путаюсь. Везде работает кроме С++
Даже на Питоне:

22219673
23 окт 20, 17:04    [22219676]     Ответить | Цитировать Сообщить модератору
 Re: Не компилируется регулярное выражение из Перл  [new]
Anatoly Moskovsky
Member

Откуда: Odessa
Сообщений: 6610
miltorg,

    std::regex rx{"^ab$", std::regex_constants::multiline};
    std::string val = "abc\nab\ncb\nab\n";
    auto it = std::sregex_iterator{val.begin(), val.end(), rx};
    auto end = std::sregex_iterator{};
    for (; it != end; ++it) {
        std::smatch match = *it;
        std::cout << match.str() << "\n";
    }


Осталось найти компилятор который поддерживает std::regex_constants::multiline
23 окт 20, 19:28    [22219760]     Ответить | Цитировать Сообщить модератору
 Re: Не компилируется регулярное выражение из Перл  [new]
miltorg
Member [заблокирован]

Откуда: Калининград
Сообщений: 764
Anatoly Moskovsky,

out.cpp:10:45: error: ‘multiline’ is not a member of ‘std::regex_constants’
24 окт 20, 06:28    [22219961]     Ответить | Цитировать Сообщить модератору
 Re: Не компилируется регулярное выражение из Перл  [new]
Anatoly Moskovsky
Member

Откуда: Odessa
Сообщений: 6610
Я ж написал
Anatoly Moskovsky
Осталось найти компилятор который поддерживает std::regex_constants::multiline



Используйте Boost (выше ссылка) и не морочьте себе голову.
24 окт 20, 10:10    [22219979]     Ответить | Цитировать Сообщить модератору
 Re: Не компилируется регулярное выражение из Перл  [new]
miltorg
Member [заблокирован]

Откуда: Калининград
Сообщений: 764
mayton
Не забудь установить буст.

sudo apt-get install libboost-all-dev


Нет. Ничего стороннего нельзя конечно же.
Это для:
https://www.sql.ru/forum/1329995/hochu-na-perl-napisat-programmu-dlya-konvertacii-transpilyacii-iz-perl-v-c
24 окт 20, 11:41    [22220001]     Ответить | Цитировать Сообщить модератору
 Re: Не компилируется регулярное выражение из Перл  [new]
mayton
Member

Откуда: loopback
Сообщений: 49762
miltorg
mayton
Не забудь установить буст.

sudo apt-get install libboost-all-dev


Нет. Ничего стороннего нельзя конечно же.
Это для:
https://www.sql.ru/forum/1329995/hochu-na-perl-napisat-programmu-dlya-konvertacii-transpilyacii-iz-perl-v-c

Ты за 20 лет Перло-кодинга имел дело с C++?
24 окт 20, 11:53    [22220008]     Ответить | Цитировать Сообщить модератору
 Re: Не компилируется регулярное выражение из Перл  [new]
Anatoly Moskovsky
Member

Откуда: Odessa
Сообщений: 6610
miltorg,

Если речь про транспиляцию перла в С++ то в общем случае это невозможно, например из-за eval.

Все, тема закрыта )))
24 окт 20, 18:19    [22220110]     Ответить | Цитировать Сообщить модератору
 Re: Не компилируется регулярное выражение из Перл  [new]
mayton
Member

Откуда: loopback
Сообщений: 49762
У него не будет eval. Он тестирует на CSV-парсерах. Вот такие вот пирожки.
24 окт 20, 18:26    [22220115]     Ответить | Цитировать Сообщить модератору
Все форумы / C++ Ответить