Насколько важно знать регулярные выражения? - PullRequest
8 голосов
/ 06 февраля 2009

Мой личный опыт показывает, что регулярные выражения решают проблемы, которые не могут быть эффективно решены каким-либо другим способом, и так часто требуются в мире, где строки так же важны, как и то, что нехватка твердого понимания предмета будет достаточной причина, по которой я считаю, что не нанимает вас в качестве старшего программиста (младшему всегда предоставляется свобода обучения).

Тем не менее.

Ряд ответов на повторяющееся "Что это за регулярное выражение?" Типовые вопросы предполагают, что многие кодеры находят их где-то между неразборчивым и непрозрачным.

Дело не в том, является ли простое indexOf или подстрока лучшим решением, это технический вопрос, и иногда простой способ верен, иногда регулярное выражение, а иногда и нет (смотря на ваши вопросы парсера html).

Речь идет о том, насколько важно понимать Regexs и является ли мнение анти-Regex (что банально «... теперь у них две проблемы») заслугой или FUD.

Должен ли программист понимать Regexs? Это необходимый навык?


редактировать: на всякий случай неясно, я не спрашиваю, нужно ли I их изучать (я защитник веры), но нужен ли анти-лагерь Есть эволюционный тупик или это ненужный нишевый навык, такой как InstallShield .

Ответы [ 16 ]

1 голос
/ 06 февраля 2009

Мне очень полезно знать регулярные выражения. Это очень мощный инструмент, и, на мой взгляд, есть проблемы, которые вы просто не можете решить без них.

Однако я бы не стал использовать регулярные выражения в качестве критерия убийства для «найма вас в качестве старшего программиста». Они похожи на множество других инструментов в мире. Вы должны действительно знать их в проблемной области, где они вам нужны, но вы не можете предположить, что кто-то уже знает все это.

"младшему всегда разрешается свобода действий тренинга "

Если старшего нет, я бы его не нанял!

Тем, кто утверждает, насколько сложным и нечитаемым является регулярное выражение: если решение проблемы с помощью регулярного выражения является сложным и нечитаемым, то, вероятно, сама проблема! Удачи в решении этой проблемы другим способом ...

0 голосов
/ 09 февраля 2009

Важно знать, когда использовать регулярные выражения и основы того, как они работают и каковы их ограничения. Но заполнение вашей головы множеством синтаксических правил, которые вам, вероятно, не понадобятся очень часто, - просто бессмысленное академическое упражнение.

Лист шпаргалки regexp может быть написан на одном листе бумаги формата А4 или на нескольких страницах учебника - не нужно знать этот материал наизусть, если вы будете использовать его каждый день, он приклеится. Если вы не используете его очень часто, клетки мозга, вероятно, лучше использовать для чего-то другого.

0 голосов
/ 09 февраля 2009

Я согласен почти со всем, что здесь сказано, и просто нужно включить обязательный квип:

Некоторые люди, когда сталкиваются с проблема, подумай "Я знаю, я буду использовать регулярные выражения. "Теперь у них есть две проблемы.

(приписывается Джейми Завински)

Как и большинство шуток, он содержит ядро ​​правды.

0 голосов
/ 09 февраля 2009

Я считаю, что регулярные выражения могут быть очень полезны в зависимости от типа программирования, который вы делаете. Однако я, вероятно, пишу менее одного регулярного выражения в месяц, и из-за этого длительного интервала между запросами регулярных выражений я очень много забываю о том, как они работают.

Возможно, мне когда-нибудь придется освоить регулярные выражения или что-то подобное.

0 голосов
/ 06 февраля 2009

Что делает следующее?

* * Тысяча два "([A-Za-Z] [A-Za-z0-9 + .-] {} 1120: A-Za-z0-9 / {} 1 333 (# ([A-Za-Z0-9 .!] [A-Za-Z0-9 $ _ + *,; /: @ & ~ =% -] {0,1000}))) "

Сколько времени тебе понадобилось, чтобы понять? отладить?

Регулярные выражения хороши для одноразовых одноразовых программ, но длинные регулярные выражения не лучший выбор для программ, которые другие люди должны будут поддерживать в течение многих лет.

0 голосов
/ 06 февраля 2009

Разработчик подумал, что у него есть одна проблема, и попытался решить ее с помощью регулярных выражений. Теперь у него 2 проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...