c# и Java, жмакнул п.1 но потом понял, что п.3 больше соответствует деиствительности, просто решение можно/нельзя обычно принимается почти на автопилоте :) переписывание с регулярок на кучу ифов если и происходит, то очень-очень редко, все таки до них обычно есть что оптимизировать.
Да, слабо, потому что он не будет нести смысловой нагрузки.
А в данном опросе, меня интересует, совершенно конкретная вещь. Если честно, на данный момент удивлен. Проголосовало 80 человек, из которых 37% за 3й пункт.
До этого был готов поспорить, что будет процентный перевес у первого пункта — но как оказалось это не так.
Да, что-то я не совсем понял в этом опросе. Это сделано для изучения влияния «пения на трение», или автор хочет найти альтернативы для regexp?
Гораздо интереснее узнать какие регулярные выражения используются и для каких целей.
P.S. Коллеги подсказывают: может речь идет про х..., б..., п...? Судя по пунктам опроса этот вариант очень подходит.
Автор не пытается найти альтернативу :)
Автор пытается понять, какое процентное соотношение используют регулярки, и на каких языках они при этом пишут.
Правильно. И такой пункт не помешал бы, а то он «застрял» между «Использую только там где без этого не обойтись» и «Зависит от задачи, но предпочту использовать». Вот я выбрал второй пункт. Если регляркой можно что-то решить быстрее, чем другим способом, то почему бы не использовать. Но это не значит, что я пихаю регулярки везде, где только можно.
c#, javascript — пункт 2. Я вот не очень просто понимаю пункт 1, это если даже там регулярные выражение и не нужны, то я их все равно втихну? типа такого: Regex.IsMatch(true.ToString(), «True»), так чтоли? ;)
PHP, Javascript, MediaWiki, да и просто текстовый редактор.
Голосовал за первый пункт с мыслью: «Если вам кажется, что ваша задача не поддаётся упрощению посредством использования регулярных выражений, то либо она вообще не предполагает ни поиска, ни замены, либо поглядите ещё раз».
java, c#, с недавнего времени python. использую редко, но, на мой взгляд, это зависит от: 1) поставленной задачи 2) осознания программистом этой задачи (в некоторых случаях это играет решающую роль), ну и 3) программного кода/архитектуры, пришедших от прежних разработчиков.
голосовал за п3
Странноватый опрос.
Использую ровно для того, для чего они предназначены: разбора текста в регулярной грамматике. В практике такое встречается довольно часто на уровне микрозадач. Но хвататься за регулярные выражения как первое и единственное средство обработки текста не стоит.
Python, C, Lua, shell, awk.
В языках где нет синтаксической поддержки регэкспов, иногда бывает проще написать маленький метод.
Т.к. синтаксический, проверка шаблона выливается срочки в три минимум, создание объекта, компиляция регулярки, сама проверка.
Проще что-нибудь типо if a.length = 1 and a[0] > ?0 and a[0] < ?9 .
Отсюда и такие ответы, перорвцы и рубисты в большинстве своем голосуют за пукт 1(ну вместе с пхпшниками еще наверно, там процедурная работа с регулярками, что немного лаконичнее оопшной), а остальные за пункт 3.
А в плане производительности, на небольших текстах и если не миллион раз в цикле вызывается, то микрооптимизацией можно не заморачиваться.
Лично я использую реги там, где не прокатит обычный str_replace/substr. Это бывает довольно часто.
В случаях, где очень критична производительность (к примеру, обрабатываются очень большие массивы информации, или нужно пройтись очень большим количеством шаблонов по тексту, так, что обычное использование регов заставляет скрипт призадуматься на пару минут :)), я использую сначала простые строковые фильтры (вроде тех же strstr или str_replace), а потом уже по оставшейся информации прохожусь регами. Это бывает крайне редко.
С/С++, Perl, Python, shell, elisp. Использую тогда, когда считаю, что это наиболее эффективно по затратам времени. Часто это самый легкий и быстрый путь, но иногда бывают трудности и сюрпризы с отладкой.
Часто ли Вы используете регулярные выражения?