Форум: "Прочее";
Текущий архив: 2015.04.05;
Скачать: [xml.tar.bz2];
ВнизЗачем нужны Regexp-ы? Найти похожие ветки
← →
Пашка. (2014-08-20 21:03) [0]Зачем нужны регулярные выражения? В чем главный профит?
← →
antonn © (2014-08-20 21:07) [1]в мощности парсинга
← →
профит (2014-08-20 21:21) [2]1) парсинг методом конечного автомата - более общий, гибкий, правильный и быстрый по сравнению с парсингом с помощью Pos/PosEx и т.п. велосипедами. Вообще, область, где применимы Pos-велосипеды - в разы уже.
2) регэкспы - это поразительно быстрый способ описания (т.е. программирования) некторых (достаточно широких и полезных в применении к парсингу) видов конечных автоматов
3) перловские регэкспы по идее должны работать с той же скоростью, что и СКОМПИЛИРОВАННЫЙ код конечного автомата, аналогичного по функции
← →
DVM © (2014-08-20 23:39) [3]Весь профит меркнет перед совершенно мозголомным их синтаксисом. Более-менее сложные выражения выглядят чудовищно для большинства людей.
← →
antonn © (2014-08-20 23:51) [4]
> DVM © (20.08.14 23:39) [3]
>
> Весь профит меркнет перед совершенно мозголомным их синтаксисом.
> Более-менее сложные выражения выглядят чудовищно для большинства
> людей.
наверняка конструкция на Pos() реализующая правила регулярки выглядит не сильно лучше :)
а так да, синтаксис как отдельный мир програмирования
← →
Styx (2014-08-21 02:24) [5]
> DVM © (20.08.14 23:39) [3]
> Весь профит меркнет перед совершенно мозголомным их синтаксисом.
> Более-менее сложные выражения выглядят чудовищно для большинства
> людей.
Дык это с непривычки... а потом как попрёт... другой способ выражения мысли будет казаться странным..
← →
KilkennyCat © (2014-08-21 04:25) [6]
> а потом как попрёт.
ага. если программа на 99% состоит только из них, в день по три сотни клепать, то конечно, попрет. А до этого момента они являются одним из массовых источников ошибок, в силу [3]. Часто замечаю, что вера в их могущество очень необоснованна. Например, использование для проверки валидности адреса е-mail сплошь и рядом.
← →
Павиа (2014-08-21 06:32) [7]1. Скорость написание парсера. В разы выше если не в десятки.
2. Из минусов синтаксис чудовищный и логика тоже.
> наверняка конструкция на Pos() реализующая правила регулярки
> выглядит не сильно лучше :) а так да, синтаксис как отдельный
> мир програмирования
Лучше. Но кода гораздо больше будет. Но тоже есть свои заморочки.
← →
antonn © (2014-08-21 08:05) [8]
> Например, использование для проверки валидности адреса е-
> mail сплошь и рядом.
а что там сложного? =)(?:[a-z0-9!#$%&"*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&"*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])
← →
sniknik © (2014-08-21 08:21) [9]> а потом как попрёт... другой способ выражения мысли будет казаться странным..
во, как то мне отдали программку на переделку от видать вот такого, у кого уже мозг "подвинулся" на этой теме, "думал регулярками", писал ими же, ВСЮ логику проги на них. ужас еще тот. волосы дыбом вставали. реально.
http://bash.im/comics/20140730
из врезавшихся в память впечатлений о проге - простое сравнение введенного значения на совпадение со списком делалось так - читался файл с регулярками (несколько мегабайт), в ней искалась нужная, перебором ага, "выкусывалась" из всего текста, после полученной регуляркой делалось сравнение на валидность (вход в список). само собой поместить этот список в комбобокс со стилем дропдаунлист и тем самым сделать проверку не нужной вообще, "оригиналу в выражении мыслей" в голову даже прийти не могло... регулярок же в этом нет.
не, я даже где-то понимаю логику/желание писавшего прогу, типа без перекомпиляции можно исправить практически все. но переписать прогу при первой необходимости это сделать оказалось проще.
p.s. это пост не против регулярок... иногда они нужны, но именно иногда.
← →
sniknik © (2014-08-21 08:25) [10]> а что там сложного? =)
http://habrahabr.ru/post/175375/
← →
antonn © (2014-08-21 08:46) [11]
> Поищите регулярку для проверки Email в Google, взгляните на нее — и захочется отойти подышать свежим воздухом.
какие нежные неосилянты :)
← →
Jeer © (2014-08-21 09:27) [12]:)
http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html
← →
icWasya © (2014-08-21 09:38) [13]А ещё вот Это
perl -e "$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see"
Внимание! Не запускать!
Гуглить
программа из одной строчки ни Perl
← →
Inovet © (2014-08-21 13:50) [14]> [12] Jeer © (21.08.14 09:27)
> :)
> http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html
Увидев это, я бы подумал, что компьютер сломался.
← →
KilkennyCat © (2014-08-21 13:54) [15]
> > http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html
чувак пишет, что это генерация из более простых правил и все равно у него там предварительная обработка адресов идет. И нафига такой огород?
← →
junglecat (2014-08-21 14:36) [16]> http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html
это надо высечь в камне как отличную загадку для археологов будущего
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2015.04.05;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.002 c