Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
15-1408712991
ВладОшин
2014-08-22 17:09
2015.04.05
Забавный вариант игры в шахматы. King of the Hill


3-1303981058
OW
2011-04-28 12:57
2015.04.05
Oracle: опять про null. почему ответ "-"?!


15-1408566603
Юрий
2014-08-21 00:30
2015.04.05
С днем рождения ! 21 августа 2014 четверг


6-1275078357
olevacho_
2010-05-29 00:25
2015.04.05
Opera spider


4-1270793885
Kolan
2010-04-09 10:18
2015.04.05
Нe удается открыть вирт. ком-порт, работающий через usbser.sys





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский