|
Регулярные выражения – инструмент грамотного программиста
|
 |
Джеффи Фридл
Регулярные выражения.
3-е издание
Рассматриваются Perl, PHP, Java, Ruby и др.
Издательство «Символ-Плюс», Санкт-Петербург, 2008, 608
стр., тираж 2000 ISBN: 5-93286-121-5.
Перевод с англ. Е.Матвеева и А.Киселева,
научный редактор Б. Попов
Аннотация от издательства
http://www.symbol.ru/alphabet/592346.html
Оригинал:
“Mastering Regular Expressions. Third Edition”, by Jeffrey E.F.Friedl; O’REILLY, 2006, 542 р., ISBN: 0-596-52812-4(англ.)
|
|
Категория:
Программирование/Программирование
Уровень
подготовки читателей: Средний
|
Регулярные выражения — система синтаксического разбора текстовых фрагментов по формализованному шаблону, основанная на системе записи образцов для поиска. Образец (pattern), задающий правило поиска, по-русски также иногда называют «шаблоном», «маской». Регулярные выражения произвели прорыв в электронной обработке текста в конце XX века. Они являются развитием символов-джокеров.
Викпедия
-----------********-----------********-----------
Понимание данных –
ключ к высокой эффективности
Джеффи Фридл
Многие используют регулярные выражения
в весьма ограниченном объеме, будучи не в состоянии
заставить работать сколько-нибудь сложные выражения.
Из отзыва одного из читателей
На энциклопедию или технический справочник очень сложно написать рецензию. Сравнивать практически не с чем, а пересказывать содержимое – это попытаться процитировать всю много-много страничную книгу в рамках журнальной рецензии. Не самое благодарное занятие, и уж совсем незахватывающее чтение. А предлагаемая вниманию читателей нашего журнала книга Джеффи Фридла «Регулярные выражения» стоит того, чтобы о ней знали, как можно больше программистов, сисадминов различных операционных систем, администраторов самых разных баз данных, начиная с Oracle (но об этом чуть позже). Поскольку она является и энциклопедией, и справочником, и учебником в том числе и в одном лице. И единственным в своем направлении фундаментальным источником информации на русском языке (по крайней мере по моим розыскам в русском Интернете).
Стоит начать с приводимого на сайте изд. «Символ-Плюс» мнения анонимного (наверняка, англо) читателя «Больше, чем я ожидал» этой книги, наиболее полно отразившего и мое [А.Б.] мнение о «Регулярных выражениях» Джеффи Фридла:
"Я занимаюсь разработкой программного обеспечения уже более 7 лет и только в последний год по-настоящему начал использовать регулярные выражения. Конечно, можно обойтись и без регулярных выражений, но, владея ими, вы поднимаетесь на более высокий профессиональный уровень. Программный код становится лаконичным, и читать такой код – одно удовольствие.
Я не читал книгу полностью, поскольку в последних главах рассматриваются особенности, характерные для определенных языков программирования, таких как Java, Perl, PHP и других… Первые преимущества я стал извлекать уже после прочтения первой главы. Работать стало намного легче.
Книгу стоит купить уже ради первых трех глав. Автор в превосходной манере объясняет читателю, что происходит за кулисами, и учит, как правильно конструировать регулярные выражения для самых разных ситуаций…"
Хочу обратить внимание на заявление читателя: «Я не читал книгу полностью…». Тем самым рекламный слоган «Рассматриваются Perl, PHP, Java, Ruby и др.» в надзаголовке на обложке книги несколько (даже сильно) сужает полноту ее содержания и круг потенциальных читателей и пользователей. Но, надеюсь, наши читатели сначала посмотрят содержание книги, которое по традиции публикуется в конце этой статьи, правильно разберутся :) с надзаголовком и больше поверят такому аргументу: «Первые преимущества я стал извлекать уже после прочтения первой главы». Поэтому я приведу мнение самого автора по поводу «Для кого написана эта книга»:
«Программисты, занимающиеся обработкой текста (например, веб-программированием), найдут здесь многочисленные технические подробности, рекомендации, советы, а главное – осознают новые возможности, которые можно немедленно применить на практике. Столь подробного и скрупулезного изложения материала вы просто не найдете в других источниках».
Что верно, то верно! Оценить же объем представленного в книге материала вам поможет ее Index так любезно опубликованный изд. O’REILLY на своем сайте - http://oreilly.com/catalog/9780596528126/inx.pdf. С удовольствием отмечу, что при подготовке отечественного издания этот индекс хорошо переведен и соответствует формату книги на русском языке. Если уж речь зашла о дополнительных материалах к «Регулярным выражениям» Джеффи Фридла, надо упомянуть выложенный на сайте изд. «Символ-Плюс» перевод главы 5 «Практические примеры регулярных выражений» (стр. 234 - 273) (см. Приложение2) и оригинал главы 4 «The Mechanics of Expression Processing», выложенный на сайте изд. O’REILLY по адресу http://oreilly.com/catalog/regex3/chapter/ch04.pdf. Спасибо за такой щедрый подарок!
С точки зрения новичка, наиболее важной для него является первая глава «Знакомство с регулярными выражениями», где читатель на примере имеющейся во всех UNIX-подобных системах команды egrep знакомится с концепциями. И хотя по мнению автора опытные пользователи могут пропустить первые три главы, он, Дж. Фридл, настоятельно рекомендует познакомиться с главой 3 «самым закаленным ветеранам». Потом идут главы 4 и 5, с которыми можно разобраться предварительно, а дальше после главы 6
«Построение эффективных регулярных выражений» читатель или сам не оторвется от этой захватывающей книги, или отложит уважительно в сторону до тех пор, пока ему не придется профессионально столкнуться с применением Perl, Java, .NET, PHP и др., и др.
Теперь попробуем разобраться с «проблемой» Oracle и Регулярные выражения. Очень может быть (или кто-нибудь подскажет автору), что в следующем издании «Регулярных выражениях» Джеффи Фридл включит главу и о регулярных выражениях применительно именно к Oracle. Ведь расширял же он свой классический труд от одного издания к следующему: I издание - январь 1997г. 368 стр.; II издание - июль 2002г. 484 стр.; III издание – август 2006г. 542 стр. Но этого, а потом еще и перевода на русский язык ждать долго. Поэтому отметим, что в недавно изданной на русском языке книге (М:, «ЛОРИ», 2007, 418 стр.) Р. Хардмана и М. МакЛафлина «Oracle PL/SQL для профессионалов» глава 10 содержит «Введение в регулярные выражения», в этом выпуске журнала перепечатывается давний (2004г.) перевод статьи Алисы Ришет (Alice Rischert) «Регулярные выражения, усовершенствующие SQL-предложения» (Writing Better SQL Using Regular Expressions). К сожалению, ни на сайте www.oracle.com, ни на сайте нашего журнала ни самой статьи, ни ее перевода уже нет, а, как мне представляется, представленная информация остается актуальной, поскольку регулярные выражения только добавляются со временем и расширением программного мира. Поэтому я включил давний перевод в этот новогодний выпуск. На языке же оригинала статей на тему
«Oracle & Regular Expressions» много, стоит только поискать. Например,
«Using Regular Expressions» (изучим за 30 минут - применительно к Oracle10g).
Анатолий Бачин,
главный редактор “Oracle Magazine/Русское Издание”
Приложение1. Оглавление книги «Регулярные выражения»
Предисловие
- Знакомство с регулярными выражениями
- Дополнительные примеры
- Регулярные выражения: возможности и диалекты
- Механика обработки регулярных выражений
- Практические примеры регулярных выражений
- Построение эффективных регулярных выражений
- Perl
- Java
- .NET
- PHP
Алфавитный указатель
Приложение 2. Содержание
глав 5 («Практические примеры регулярных выражений» (стр. 234 - 273), выложенной в свободном доступе по адресу:
http://www.books.ru/chapter?id=592346.
- Балансировка регулярных выражений
- Несколько коротких примеров
- Снова о строках продолжения
- Поиск IP-адреса
- Работа с именами файлов
- Поиск парных скобок
- Исключение нежелательных совпадений
- Поиск текста в ограничителях
- Данные и предположения
- Удаление пропусков в начале и конце строки
- Работа с HTML
- Поиск тегов HTML
- Поиск ссылок HTML
- Анализ HTTP URL
- Проверка имени хоста
- Поиск URL на практике
- Нетривиальные примеры
- Синхронизация
- Разбор данных, разделенных запятыми
|