@phpclubru

Страница 902 из 956
Pavel
11.05.2019
23:54:21
Это называется не вера а научное знание. Достаточно ознакомиться с тем как они устроены и какой мат. аппарат обеспечивает работу, чтобы бояться их всегда.

И ситуаций подобных этой https://www.regular-expressions.info/catastrophic.html

А много ли людей на глаз может оценить вычислительную сложность регулярки?

Или даже вообще этим занимается _впринципе_ при разработке на пшп ?

Google
Pavel
12.05.2019
00:00:53
Да именно про это

Там где можно использовать explode не нужно использовать pcre

И когда ты пишешь очередную регулярку то ты даже не представляешь, будет она работать быстро, или же упадет в миллионы шагов пробега по конечноу автомату

Это уже демагогия. Надо по ситуации решать что лучше а что нет.

Заметь, регулярка там вполне себе оптимальная, а вот выполняется крайне неоптимально. И это не очевидно.

Любой мидл вполне напишет и даже глазом не моргнет

Ну поищи бенчмарки чтоли https://stackoverflow.com/questions/6433492/preg-match-vs-strpos-for-match-finding Я не знаю что еще тебе доказывать

Регулярки медленные, сложные, их забывают, их трудно рефакторить. Какие еще нужны аргументы против?

Да я утверждаю. Выглядит вполне просто.

Не эта так другая похожая может попасть в ловушку.

В общем у тебя конструктивные аргументы в обратную сторону будут? Я ссылки привел.

Или только демагогия с матами?

Ты используешь логическую ошибку защита чубакки, с тобой бессмысленно.

Google
Pavel
12.05.2019
00:16:05
Изначально я не говорил что абсолютно всегда нужно брать strpos вместо регулярок

Ты сам себе придумал тезис и с ним споришь.

Всегда бояться != всегда избегать

Именно так, что тут неправильного?

Чтобы применить регулярку надо сначала разобрать строку, потом построить по ней конечный автомат и потом еще бегать по нему, это дополнительное время требует, неужели не очевидно?

> Ага, а если мы начинаем писать эту логику на Какую - "эту" логику? Любую?

опкоды strpos и explode тоже кешируются, так что не аргумент

Опять какой-то притянутый за уши аргумент непонятно к чему :)

Ты в итоге бенчмарки изначальной задачи то делал?

У меня вот получилось что регулярка работает в полтора раза медленнее

Что конечно не 20 раз как я сначала думал, но тем не менее

у себя кодом на компе на 10 млн. итераций

Так что это бенч уже с учетом закешированного построенного автомата ;)

https://pastebin.com/WR38ULUW

А какой надо брать?

$ php t.php 25 18 вот на 50 млн. итераций

Admin
ERROR: S client not available

Pavel
12.05.2019
01:07:28
Это на твоей оптимальной регулярке?

ну скинь ее

Все равно ж explode максимально понятно, и нет никакого сложного автомата о котором ты говоришь

Google
Pavel
12.05.2019
01:14:08
Она не работает, не матчит ничего https://regex101.com/r/IXfAss/1

У тебя неправильная регулярка имхо

из текста w3 он тоже должен выхватывать

В условии написано взять из блока цифру, не написано что она идет всегда первой ;)

или так w3w

Но возможно это я уже загоняюсь

От того что оба неправильно работают

Ну потому что из 3w3 возвращать 3 это странно

Написано там в блоке

А не первое встреченное

Ну да, скорее это ошибка будет

А прочитать - сложно

Страница 902 из 956