Size: a a a

2021 November 19

SZ

Sergey Zhmylove in Modern::Perl
@PerlBanjoBot $ echo cacactus |grep ctus && echo MATCH
источник

P

PerlBanjoBot in Modern::Perl
источник

SZ

Sergey Zhmylove in Modern::Perl
Как видишь, такого паттерна нет, но он матчит
источник

b

basiliscos in Modern::Perl
У нас там, считай что ^#pattern#$ делается
источник

b

basiliscos in Modern::Perl
сабматчей нет
источник

SZ

Sergey Zhmylove in Modern::Perl
Ты про строку 157? Это вполне себе занимает память
источник

OP

Oleg Pronin in Modern::Perl
Я не вижу номера строк
источник

SZ

Sergey Zhmylove in Modern::Perl
Оо, понятно. То есть чтобы сматчить как в перле, надо явно писать .*? в начале и .* в конце?
источник

W

Warstone in Modern::Perl
источник

SZ

Sergey Zhmylove in Modern::Perl
switch (cs) { case 35: goto st35;
источник

OP

Oleg Pronin in Modern::Perl
Это не по символам)
источник

b

basiliscos in Modern::Perl
оно не "как в перле", оно со своими ограничениями. Например, бэктрекинга, лук-ahead/behind, нет, частичных матчей и т.п. За счёт этого кушается память, но и быстрей работает.
источник

OP

Oleg Pronin in Modern::Perl
Сабматч это все равно что ^.*RE
Так что есть.
источник

OP

Oleg Pronin in Modern::Perl
Бектрекинг делается без особых затрат, частичный матч есть, лук ахеад бехайнд можно сделать но тогда если встретится нарушится гарантия константности времени, т.к. это противоречит дка
источник

SZ

Sergey Zhmylove in Modern::Perl
Это не принципиально :) всё равно жрет память, потому что это компилится в кучу cmpl+je
источник

OP

Oleg Pronin in Modern::Perl
Можно реализовать без «кушается память», вернее не больше чем в НКА, это не догма, но требуется компиляция или частичная потеря скорости
источник

SZ

Sergey Zhmylove in Modern::Perl
Ну вот мы ж исходим из того, что скорость матча любых регекспов будет *абсолютно* одинаковой
источник

OP

Oleg Pronin in Modern::Perl
Тока если вариантов много. Это парсер регэкспа специфическая штука, в ури роутере например вариантов каждом транзишене мало, он не будет в джами компилиться там во многих кейсах
источник

OP

Oleg Pronin in Modern::Perl
Она будет одинаковой при фиксированном алгоритме. Понятно что разная реализация по разному работать будет
источник

SZ

Sergey Zhmylove in Modern::Perl
Мы с тобой прекрасно понимаем, что процессор не обманешь. Либо ему придется выполнять лишние инструкции (т.е. время уже не одинаковое), либо программа будет кушать больше памяти и третьего не дано
источник