regulyarnyie-vyirazheniya-osnovyi (852744), страница 2
Текст из файла (страница 2)
(Возможности регулярных выражений,предлагаемые в редакторе QED, описаны в табл. А.1 приложения.)Для демонстрации примеров в книге применяются различные средства, и я надеюсь,что большинство из них окажутся для вас полезными и их использование не вызовет трудностей, однако некоторые средства могут быть недоступны для пользователей Windows.Конечно, вы сможете пропускать описания примеров, которые вам не удается воспроизвести в силу отсутствия того или иного средства. Однако я считаю, что каждый, кто всерьеззадумывается о карьере компьютерного специалиста, должен обязательно ознакомитьсяс методами обработки регулярных выражений в Uniх-подобных средах.
Я работаю с подобными системами вот уже 25 лет и все равно каждый день нахожу для себя что-то новое."Бедняги, не знакомые с UNIX, обречены заново изобретать велосипед", - ГенриСпенсерК некоторым из представленных в книге инструментов возможен доступ в Интернетес помощью браузера, что будет наиболее удобно для большинства читателей. Часть инструментов требует использования командной строки, тогда как другие инструменты доступны в виде настольных приложений. В случае отсутствия у вас нужного инструментария его можно легко загрузить из Интернета. Большинство инструментальных средств,о которых пойдет речь, бесплатны или стоят совсем недорого.В этой книге я стараюсь описывать регулярные выражения простым и понятнымязыком. Специальная терминология употребляется весьма экономно и только в самойнеобходимой степени.
Я придерживаюсь именно такого подхода, поскольку многолетнийопыт научил меня, что чрезмерно насыщенный терминами текст нередко препятствуетпониманию сути. Это соответствует принципу, положенному в основу книги: много полезного можно делать даже тогда, когда еще не до конца вник в суть проблемы.Существует множество различных реализаций регулярных выражений. В частности,вы увидите, что они используются в таких инструментах командной строки Unix, как vi(vim), grep или sed.
Регулярные выражения встроены в такие языки программирования,как Perl (а разве могло быть иначе?), Java, JavaScript, С#, Ruby и многие другие, а такжев декларативные языки наподобие XSLT 2.0. Список реализаций может быть продолжентакими настольными приложениями, как Notepad++, Oxygen или TextMate.Большинство из указанных реализаций регулярных выражений в чем-то сходны, а вчем-то различаются. Я не могу подробно обсудить все отличия в столь маленькой книге, но о многих расскажу. Любые попытки задокументировать все различия между всеми реализациями наверняка привели бы меня в больницу.
Поэтому углубляться во всеподробности такого рода я не буду. Данная книга предназначена лишь для ознакомлениячитателя с регулярными выражениями, и эта цель будет достигнута.Дnя коrо предназначена эта книrаПредполагаемые читатели книги - люди, которые за всю свою жизнь не написалиеще ни одного регулярного выражения. Если вы новичок в этой области или в программировании вообще, то книга будет для вас хорошим вводным курсом. Другими словами,она предназначена для тех читателей, которые слышали кое-что о регулярных выражениях и заинтересовались ими, но пока еще не до конца понимают, что они собой представляют. Если вы относитесь к данной категории, то эта книга как раз для вас.В целом, рассматривая свойства регулярных выражений, я буду придерживатьсяпринципа "от простого к сложному': Иными словами, новые сведения будут преподноситься постепенно, небольшими порциями.Если вы достаточно хорошо знакомы с регулярными выражениями и уверенно имипользуетесь, вам лучше обратиться к другим книгам.
Эта книга предназначена для новичков, которые нуждаются в том, чтобы их буквально вели за руку. Если вам уже приходилось сталкиваться с регулярными выражениями, но ваша практика работы с нимидовольно ограниченна, то эта книга будет для вас полезной. Однако темпы рассмотренияматериала могут показаться вам не столь быстрыми, как хотелось бы.Могу порекомендовать несколько учебных пособий, которые имеет смысл изучитьпосле прочтения данной книги. В книге Джеффри Фридла Регулярные выражения, 3-е издание (Символ-Плюс, 2008 г.) регулярные выражения рассмотрены гораздо более подробно.
Кроме того, можете прочитать книгу Яна Гойвертса и Стивена Левитана Регулярнь1е12Введениевыражения. Сборник рецептов, 2-е издание (Символ-Плюс, 2015 r.). Ян Гойвертс - создатель RegexBuddy, мощного настольного приложения для работы с регулярными выражениями (http://www. regexbuddy.
сот/), тогда как Стивен Левитан создал RegexPal,онлайновый процессор регулярных выражений (http://www. regexpal. сот), который будет использован в первой главе.Что необходимо дnя работы с книгойЧтобы чтение книги принесло вам максимальную пользу, в вашем распоряжении должны быть некоторые средства Unix (Linux), доступ к которым на компьютерах Мае обеспечивается установкой операционной системы Darwin (разновидностьBSD), а на компьютерах Windows - установкой приложения Cygwin, в дистрибутив которого включены многие инструменты GNU (см. ht t р : //www. сygw i n . с оти http://www.
gnu. org).Книга изобилует многочисленными примерами. Можете просто просматривать их,но, для того чтобы действительно чему-то научиться, лучше самостоятельно выполнитькак можно больше примеров, поскольку, по моему глубокому убеждению, важнейшийфактор обуч ения - закрепление получаемых знаний на практике.
Я представлю вамвеб-приложения, упрощающие освоение регулярных выражений за счет цветового выделения найденных совпадений, а также познакомлю с инструментальными "рабочимилошадками" из мира Unix и настольными приложениями для анализа регулярных выражений и их использования в контекстном поиске.Примеры из книги можно найти на сайте Github по следующему адресу:https://github.com/michaeljamesfitzgerald/�Introducing-Regular-ExpressionsКроме того, полный архив всех примеров и тестовых файлов, используемых в книге,доступен для загрузки по следующим адресам:http://examples.oreilly.com/0636920012337/examples.ziphttp://www.williamspuЫishing.com/Books/978-5-8459-1953-3.htmlБудет лучше, если вы сначала создадите рабочий каталог или папку на своем компьютере и загрузите туда эти файлы, а затем уже приступите к чтению книги.Соrnашения, принятые в книrеВ книге использованы следующие типографские соглашения.• Курсивом выделяются новые термины, URL-aдpeca, адреса электронной почты, имена и расширения имен файлов и т.п.• Моноширинный шрифт используется в листингах программ, а также в основном тексте для представления регулярных выражений, содержимого командной строки и других подобных элементов.Этой пиктограммой обозначены разделы текста, содержащие советы, рекомендации, а также замечания общего характера.Введение13Испояьзование кода примеровЭта книга была написана для того, чтобы облегчить вам работу.
Вообще говоря, выможете свободно использовать приведенный в книге код в своих программах и документации. Получения какого-либо специального разрешения от нас, если только речьне идет о значительных объемах кода, не требуется. Например, использование в вашейпрограмме нескольких фрагментов кода, взятых из книги, не требует разрешения. Однако продажа или распространение компакт-диска, содержащего примеры из книг, выпущенных издательством O'Reilly, без предварительного получения разрешения запрещена.
Цитирование данной книги и использование кода примеров в ответах на вопросы нетребует разрешения. Вместе с тем, если вы включаете в документацию своего продуктазначительные объемы кода из приведенных в книге примеров, то получение соответствующего разрешения является обязательным условием.Ждем ваших отзывов!Вы, читатель этой книги, и есть главный ее критик.
Мы ценим ваше мнение и хотимзнать, что было сделано нами правильно, что можно было сделать лучше и что еще выхотели бы увидеть изданным нами. Нам интересны любые ваши замечания в наш адрес.Мы ждем ваших комментариев и надеемся на них. Вы можете прислать нам бумажноеили электронное письмо либо просто посетить наш сайт и оставить свои замечания там.Одним словом, любым удобным для вас способом дайте нам знать, нравится ли вам этакнига, а также выскажите свое мнение о том, как сделать наши книги более интереснымидля вас.Отправляя письмо или сообщение, не забудьте указать название книги и ее авторов,а также свой обратный адрес. Мы внимательно ознакомимся с вашим мнением и обязательно учтем его при отборе и подготовке к изданию новых книг.Наши электронные адреса:info@williamspuЫishing.comwww.williamspuЬlishing.comНаши почтовые адреса:E-mail:l№INJ:в России:в Украине:14127055, Москва, ул. Лесная, д.
43, стр. 103150, Киев, а/я 152ВведениеГЛАВА 1Что такое реrуnярные выраженияРегулярные выражения - это специальные текстовые строки, которые используютсяв качестве шаблонов (образцов) для сопоставления с наборами других строк. Они былипредложены в качестве способа описания регулярных языков еще в 1940-х годах, однако начало их широкого применения в программировании относится к 1970-м годам.Я впервые узнал о них из руководства к текстовому редактору QED, написанному КеномТомпсоном:"Регулярное выражение - это шаблон, определяющий набор символьных строк;о таком шаблоне говорят, что он соответствует определенным строкам':Вскоре регулярные выражения были встроены в целый ряд инструментальныхсредств, которые первоначально входили в состав операционной системы Unix, но впоследствии обрели самостоятельное существование.