Как стать автором
Обновить

Комментарии 36

Так же хотелось бы услышать, на каком языке программирования Вы пишете.
С# и Java, голосовал за п.3.
c# и Java, жмакнул п.1 но потом понял, что п.3 больше соответствует деиствительности, просто решение можно/нельзя обычно принимается почти на автопилоте :) переписывание с регулярок на кучу ифов если и происходит, то очень-очень редко, все таки до них обычно есть что оптимизировать.
Apex (язык Force.com), Javascript, Flex3/Actionscript, PHP, голосовал за п.1
Слабо создать опрос «как часто вы чистите зубы по утрам»?
регулярно! :)
Да, слабо, потому что он не будет нести смысловой нагрузки.
А в данном опросе, меня интересует, совершенно конкретная вещь. Если честно, на данный момент удивлен. Проголосовало 80 человек, из которых 37% за 3й пункт.
До этого был готов поспорить, что будет процентный перевес у первого пункта — но как оказалось это не так.
А какая смысловая нагрузка в данном опросе? Какой же вы сделаете из него вывод и как это повлияет на эффективность и плодотворность вашей работы?
Я постоянно использую там, где без этого не обойтись. :)
наверное потому что 3й пункт самый логичный :)
C++, Java, Perl, AC3 — голосовал за п.2.
Да, что-то я не совсем понял в этом опросе. Это сделано для изучения влияния «пения на трение», или автор хочет найти альтернативы для regexp?
Гораздо интереснее узнать какие регулярные выражения используются и для каких целей.

P.S. Коллеги подсказывают: может речь идет про х..., б..., п...? Судя по пунктам опроса этот вариант очень подходит.
Автор не пытается найти альтернативу :)
Автор пытается понять, какое процентное соотношение используют регулярки, и на каких языках они при этом пишут.
Тут результаты прогнозируемы до голосования.

Пищущие на ассемблере почти не используют.
Остальные по необходимости.

:)
регулярные выражение надо использовать только тогда когда это надо, как и остальные инструменты для работы. разве может быть иначе?
Правильно. И такой пункт не помешал бы, а то он «застрял» между «Использую только там где без этого не обойтись» и «Зависит от задачи, но предпочту использовать». Вот я выбрал второй пункт. Если регляркой можно что-то решить быстрее, чем другим способом, то почему бы не использовать. Но это не значит, что я пихаю регулярки везде, где только можно.
Наверное Вы правы. В следующий раз буду лучше думать, при создании опроса.
НЛО прилетело и опубликовало эту надпись здесь
Perl, Javascript, shell
Чуть не забыл. Использую постоянно.
Крайне нерегулярно.
Голосовал за п.2.
Языки — PHP, Python, Javascript, редко и мало Java.
п.3.
Java, PHP, Javascript.
c/c++, c#, php, perl, asm
ruby, php, js использую там где не нужна большая производительность. Например валидация или подсветка ссылок
c#, javascript — пункт 2. Я вот не очень просто понимаю пункт 1, это если даже там регулярные выражение и не нужны, то я их все равно втихну? типа такого: Regex.IsMatch(true.ToString(), «True»), так чтоли? ;)
Чаще всего использую на Perl'е, реже js, реже Java.
PHP, Javascript, MediaWiki, да и просто текстовый редактор.

Голосовал за первый пункт с мыслью: «Если вам кажется, что ваша задача не поддаётся упрощению посредством использования регулярных выражений, то либо она вообще не предполагает ни поиска, ни замены, либо поглядите ещё раз».
Я потрясён! Почему хабрахабр в слове «Javascript» заменяет заглавную «S» на строчную «s»??
java, c#, с недавнего времени python. использую редко, но, на мой взгляд, это зависит от: 1) поставленной задачи 2) осознания программистом этой задачи (в некоторых случаях это играет решающую роль), ну и 3) программного кода/архитектуры, пришедших от прежних разработчиков.
голосовал за п3
Странноватый опрос.
Использую ровно для того, для чего они предназначены: разбора текста в регулярной грамматике. В практике такое встречается довольно часто на уровне микрозадач. Но хвататься за регулярные выражения как первое и единственное средство обработки текста не стоит.
Python, C, Lua, shell, awk.
Ruby, первый пункт.
puts "ok" if a =~ /\d{1}/
— как такое не использовать?:)

В языках где нет синтаксической поддержки регэкспов, иногда бывает проще написать маленький метод.
Т.к. синтаксический, проверка шаблона выливается срочки в три минимум, создание объекта, компиляция регулярки, сама проверка.
Проще что-нибудь типо if a.length = 1 and a[0] > ?0 and a[0] < ?9 .

Отсюда и такие ответы, перорвцы и рубисты в большинстве своем голосуют за пукт 1(ну вместе с пхпшниками еще наверно, там процедурная работа с регулярками, что немного лаконичнее оопшной), а остальные за пункт 3.

А в плане производительности, на небольших текстах и если не миллион раз в цикле вызывается, то микрооптимизацией можно не заморачиваться.
Лично я использую реги там, где не прокатит обычный str_replace/substr. Это бывает довольно часто.

В случаях, где очень критична производительность (к примеру, обрабатываются очень большие массивы информации, или нужно пройтись очень большим количеством шаблонов по тексту, так, что обычное использование регов заставляет скрипт призадуматься на пару минут :)), я использую сначала простые строковые фильтры (вроде тех же strstr или str_replace), а потом уже по оставшейся информации прохожусь регами. Это бывает крайне редко.
С/С++, Perl, Python, shell, elisp. Использую тогда, когда считаю, что это наиболее эффективно по затратам времени. Часто это самый легкий и быстрый путь, но иногда бывают трудности и сюрпризы с отладкой.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории