#3 11.07.08 12:51
Re: Регулярные выражения. Гипотетическая нагрузка на сервер
может на клиенте лучше проверять?)
Offline
#5 11.07.08 13:04
Re: Регулярные выражения. Гипотетическая нагрузка на сервер
гипотетически может но я думаю это редко может произойти. Вот запросы sql в легкую подгружают сервак. На работе частетнько бывает что из-за одного запроса локается вся база в результате чего нагрузка дико растет.
А разве для проверки корректности мыла достаточно сложный регексп?
Исправлено Unclead (11.07.08 13:05)
Offline
#8 11.07.08 14:03
Re: Регулярные выражения. Гипотетическая нагрузка на сервер
Antony, тогда ты редиска и придётся тебя забанить)
Offline
#10 11.07.08 15:38
Re: Регулярные выражения. Гипотетическая нагрузка на сервер
Antony, вроде в спамассасине прописано примерно такое:
Код: perl:
# REGEX for check address my $local_part = qr/(?-xism:(?-xism:(?-xism:(?-xism:\s*\((?:\s*(?-xism:(?-xism:(?>[^()\\]+))|(?-xism:\\(?-xism:[^\x0A\x0D]))|(?-xism:\s*\((?:\s*(?-xism:(?-xism:(?>[^()\\]+))|(?-xi sm:\\(?-xism:[^\x0A\x0D]))|)+)*\s*\)\s*))+)*\s*\)\s*)+|\s+)*(?-xism:[^\x00-\x1F\x7F()<>\[\]:;@\,."\s]+(?:\.[^\x00-\x1F\x7F()<>\[\]:;@\,."\s]+)*)(?-xism:(?-xism:\s*\((?:\s*(?-xism: (?-xism:(?>[^()\\]+))|(?-xism:\\(?-xism:[^\x0A\x0D]))|(?-xism:\s*\((?:\s*(?-xism:(?-xism:(?>[^()\\]+))|(?-xism:\\(?-xism:[^\x0A\x0D]))|)+)*\s*\)\s*))+)*\s*\)\s*)+|\s+)*)|(?-xism:( ?-xism:(?-xism:\s*\((?:\s*(?-xism:(?-xism:(?>[^()\\]+))|(?-xism:\\(?-xism:[^\x0A\x0D]))|(?-xism:\s*\((?:\s*(?-xism:(?-xism:(?>[^()\\]+))|(?-xism:\\(?-xism:[^\x0A\x0D]))|)+)*\s*\)\ s*))+)*\s*\)\s*)+|\s+)*"(?-xism:(?-xism:[^\\"])|(?-xism:\\(?-xism:[^\x0A\x0D])))+"(?-xism:(?-xism:\s*\((?:\s*(?-xism:(?-xism:(?>[^()\\]+))|(?-xism:\\(?-xism:[^\x0A\x0D]))|(?-xism: \s*\((?:\s*(?-xism:(?-xism:(?>[^()\\]+))|(?-xism:\\(?-xism:[^\x0A\x0D]))|)+)*\s*\)\s*))+)*\s*\)\s*)+|\s+)*))/; my $domain = qr/(?-xism:(?-xism:(?-xism:(?-xism:\s*\((?:\s*(?-xism:(?-xism:(?>[^()\\]+))|(?-xism:\\(?-xism:[^\x0A\x0D]))|(?-xism:\s*\((?:\s*(?-xism:(?-xism:(?>[^()\\]+))|(?-xism:\ \(?-xism:[^\x0A\x0D]))|)+)*\s*\)\s*))+)*\s*\)\s*)+|\s+)*(?-xism:[^\x00-\x1F\x7F()<>\[\]:;@\,."\s]+(?:\.[^\x00-\x1F\x7F()<>\[\]:;@\,."\s]+)*)(?-xism:(?-xism:\s*\((?:\s*(?-xism:(?-x ism:(?>[^()\\]+))|(?-xism:\\(?-xism:[^\x0A\x0D]))|(?-xism:\s*\((?:\s*(?-xism:(?-xism:(?>[^()\\]+))|(?-xism:\\(?-xism:[^\x0A\x0D]))|)+)*\s*\)\s*))+)*\s*\)\s*)+|\s+)*)|(?-xism:(?-xi sm:(?-xism:\s*\((?:\s*(?-xism:(?-xism:(?>[^()\\]+))|(?-xism:\\(?-xism:[^\x0A\x0D]))|(?-xism:\s*\((?:\s*(?-xism:(?-xism:(?>[^()\\]+))|(?-xism:\\(?-xism:[^\x0A\x0D]))|)+)*\s*\)\s*)) +)*\s*\)\s*)+|\s+)*\[(?:\s*(?-xism:(?-xism:[^\[\]\\])|(?-xism:\\(?-xism:[^\x0A\x0D])))+)*\s*\](?-xism:(?-xism:\s*\((?:\s*(?-xism:(?-xism:(?>[^()\\]+))|(?-xism:\\(?-xism:[^\x0A\x0D ]))|(?-xism:\s*\((?:\s*(?-xism:(?-xism:(?>[^()\\]+))|(?-xism:\\(?-xism:[^\x0A\x0D]))|)+)*\s*\)\s*))+)*\s*\)\s*)+|\s+)*))/;
Offline
#11 11.07.08 19:35
#12 11.07.08 20:07
Re: Регулярные выражения. Гипотетическая нагрузка на сервер
может ошибка в синтаксисе? вона ие у меня частенько валится
Offline
#13 11.07.08 21:03
#14 11.07.08 22:13
#15 11.07.08 22:53
Re: Регулярные выражения. Гипотетическая нагрузка на сервер
регулярные выражения работают быстро, другой вопрос что там придумает программист :)
обычно все проблемы производительности из-за "жадности" алгоритма (которая нужна не всегда, просто так получается), что и получилось в данном случае
Offline
#16 12.07.08 13:41
Re: Регулярные выражения. Гипотетическая нагрузка на сервер
Есть мнение, что многое зависит и от реализации алгоритма разбора regex'a. На сколько мне известно. сейчас самыми распространенными являются стандарты PCRE (детерминированный конечный автомат) и POSIX (недетерминированный конечный автомат). В зависимости от конкретного примера regex'a разница в обработке может отличаться в тысячи, однако, зачастую PCRE всё же выигрывает у POSIX.
Offline

