Pull to refresh

Comments 22

UFO just landed and posted this here
Я бы сказал, что она немного устарела. RE2, regex в Go, boost.regex и прочие новомодные нюансы в ней не затронуты по очевидным причинам. А в целом, имхо, неплохая книга как для начинающих, так и для продвинутых.
Отчего же не так? Классическая книга, правда, к сожалению, не наша…
В своей компании писал курс для начинающих. Фридл — самый полноценный источник. Написано художественным, понятным языком с прекрасными примерами из жизни.

1. Фридл не просто классика, а один из создателей регулярных выражений, поэтому история его глазами выглядит очень понятно.
2. Зачем активно искать что-то для НАЧИНАЮЩИХ — небольшой статьи — выше крыши. А для продвинутых — Фридл.

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


Ну положим заинтересовала бы, что ваше издательство может предложить?
Чем Фридл не устраивает. Первой главы там вполне достаточно, чтобы освоить регулярки на очень простом бытовом уровне, чего многим хватит. А если нужно сложнее то просим читать дальше.
3. В коде АТС 1 не может быть третьей цифрой, если вторая цифра – это 1.
Ваше регулярное выражение уже соответствует первому правилу, но нарушает второе и третье. Пока давайте разберемся со вторым.

Поскольку региональный код такой же, как и код АТС, можно просто продублировать регулярное выражение, чтобы довести этот шаблон до ума.

Про третье правило забыли :)
И где-то здесь должна быть ссылка на статью с заблуждениями программистов о телефонных номерах.
Гуглится с полпинка habrahabr.ru/post/279751/
Если сейчас писать регулярку, обычно ее пишешь в онлайн-тестере. Там отлаживаешь, а потом уже копипастишь в код.

Добавьте в статью ссылки на известнейшие онлайн-утилиты для regexp.
https://regex101.com/
http://www.regexplanet.com/
Крайне не рекомендую книгу Фридла для регулярных выражений. Она плохая, плохо написанная и имеет кучу всяких проблем. Такая же плохая как и книга Кнута.

Фактически оба уничтожили или как минимум покоробили свою индустрию — регулярные выражения заработали репутацию чего-то сложного и непонятного потому что Фридл написал ПЛОХУЮ, СЛОЖНУЮ, ОТВРАТИТЕЛЬНУЮ КНИГУ.

Из литературы на рынке мне понравилось:
Python Regular Expressions
Б.Форта Регулярные выражения за 24 часа (аж 2004 года что ли)
Неплохое введение если не ошибаюсь было в книге XSLT Дага Тидвелла
А мне Фридл понравился, когда читал. Хорошая книга, ничего там сверхсложного нет. Зря Вы так.

А про какую из книг Дональда Кнута Вы говорите?
Я бы порекомендовал курс компиляторов Alex Aiken, в свое время все расставил на свои места по регуляркам. Притом это были не заученные знания, а твердо усвоенные фундаментальные.
Для любителей головоломок есть такой вот сайтик regexcrossword.com. После него начал читать регексы почти на лету.
А почему простые смертные должны использовать ruby, а сказать это им вы не хотите?
> Поскольку вы знаете, что телефонные номера состоят из десяти цифр.

Это без международного префикса, а он тоже входит в телефонный номер. Рекомендация Международный союза электросвязи E.164 ограничивает длину телефонного номера до 15 цифр включительно. Но это лишь рекомендация. Фактически же длинна телефонного номера ничем не ограничена.
Стоило бы наверно написать предупреждение о регэксах? Ну, то самое, которое «если у вас есть проблема».
«Символ? означает «ноль или единица»» — неужели так сложно было дописать в конце «повторений» или «раз»?
Если Вы пишете статью для новичков, то будьте добры быть точными в выражениях. А вот если это для тех, кто и так знает регулярные выражения — зачем им вообще читать такую статью?..
/Символ? означает «ноль или единица»

я бы сказал этот символ скорее означает возможное отсутствие единицы, но никак не ноль
Скачал книгу Д. Фридла на посмотреть почитать
В книге упоминается утилита egrep на Win её не нашел
В интернете есть утилита grep не понял как с ней работать.
Sign up to leave a comment.