Главная » Просмотр файлов » regulyarnyie-vyirazheniya-osnovyi

regulyarnyie-vyirazheniya-osnovyi (852744), страница 20

Файл №852744 regulyarnyie-vyirazheniya-osnovyi (Пособие по регуляркам) 20 страницаregulyarnyie-vyirazheniya-osnovyi (852744) страница 202021-10-05СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 20)

Теперь вы уже далеко не новичок в области регулярных выражений.Вам был представлен синтаксис наиболее часто используемых регулярных выражений,что открыло перед вами много новых возможностей.Знание регулярных выражений сэкономило мне массу времени. Позвольте привестиконкретный пример.По роду работы мне часто приходится использовать XSLT, и во многих случаях я дол­жен анализировать теги, встречающиеся в группе ХМL-файлов.Кое-что из этого я постарался продемонстрировать вам в последней главе, а сейчаспрошу взглянуть на однострочную команду, которая выбирает список тегов из файлаlorem.dita и преобразует его в простую таблицу стилей XSLT.grep -Ео '<[_a-zA-Z][л >]*>' lorem.dita I sort I uniq I sed�'1 i\<xsl:stylsheet version ="2.0" xmlns:xsl="http://www.wЗ.org/1999/XSL/Transform">\s/ л </\<xsl:template match="/;s/ id=\".*\"//;s/>$/">\<xsl:apply-templates\/>\<\/xsl:template>/;$ а\\</xsl:stylesheet>\Я знаю, что этот сценарий выглядит сплошной эквилибристикой, но, после тогокак вы внимательно его изучите, ваше мнение изменится.

Я даже не буду объяснять,что именно делает эта команда, поскольку уверен, что теперь вы и сами вполне можетев этом разобраться.Вот как выглядит вывод этой команды.<xsl:stylsheet version ="2.0" xmlns:xsl=�"http://www.wЗ.org/1999/XSL/Transform"><xsl:template match= "body"><xsl:apply-templates/></xsl:template><xsl:template match="li"><xsl:apply-templates/></xsl:template><xsl:template match="p"><xsl:apply-templates/></xsl:template><xsl:template match="title"><xsl:apply-templates/></xsl:template><xsl:template match="topic"><xsl:apply-templates/></xsl:template><xsl:template match="ul"><xsl:apply-templates/></xsl:template></xsl:stylesheet>Это всего лишь начало.

Конечно же, над такой простой таблицей стилей нужно ещенемало потрудиться, прежде чем она сможет делать что-нибудь полезное, но зато онаизбавит вас от необходимости вручную вводить большие объемы данных.Я признаю, что было бы проще поместить все вышеприведенные команды sed в файл.В действительности я так и сделал. Соответствующий файл xslt.sed вы найдете в архивепримеров. Вот его содержимое.# ! /usr/Ьin/sed1 i\<xsl:stylsheet version="2.0" xmlns:xsl=�"http://www.wЗ.org/1999/XSL/Transform">\s/Л</\<xsl:template match="/;s/ id=\".*\"//;s/>$/">\<xsl:apply-templates\/>\<\/xsl:template>/;$ а\\</xsl:stylesheet>\Ниже показано, как запустить этот файл на выполнение.grep -Ео '<[_a-zA-Z][ л >]*>' lorem.dita I sort 1�uniq I sed -f xslt.sedЧто дапьwеНесмотря на то что сейчас вы уже достаточно хорошо подготовлены для работы с ре­гулярными выражениями, вам еще предстоит многому научиться. Хочу предложить ряддрутих книг, которые вам стоило бы прочитать.Мои советы основаны на личном опыте и наблюдениях и не продиктованы никакимирекламными соображениями.

Я делаю это совершенно искренне, потому что чтение пе­речисленных ниже книг действительно пойдет вам на пользу.116Глава 10. Конец началаКнига Джеффри Фридла Регулярные выражения, 3-е издание (Символ-Плюс, 2008 г.) источник, к которому обращаются многие программисты в поиске компетентного рас­смотрения регулярных выражений. Если вы собираетесь серьезно работать с регуляр­ными выражениями, то эта содержательная и хорошо написанная книга обязательнодолжна стоять на вашей книжной полке.Книга Яна Гойвертса и Стивена Левитана Регулярные выражения.

Сборник рецептов,2-е издание (Символ-Плюс, 2015 г.) - другой замечательный труд, особенно если речьидет о сравнении различных реализаций. Эту книгу вам также стоит иметь у себя.Книга Тони Стаблбайна Regular Expression Pocket Reference: Regular Expressions for Perl,Ruby, РНР, Python, С, Java and .Net (O'Reilly, 2007) - это 128-страничное руководство, ко­торое, несмотря на сравнительно давний срок выхода в свет, и по сей день остается по­пулярным.Книга Эндрю Уотта Beginning Regular Expressions (Wrox, 2005) была высоко оценена про­граммистами.

Особенно полезным я считаю также онлайновое руководство по редакторуsed, написанное Брюсом Барнеттом (http://www. grymoire. com/Unix/Sed. html).В нем демонстрируется использование целого ряда нетривиальных средств, о которыхмною не было сказано ни слова.Инструменты, реапизации и бибпиотекиPerlPerl - популярный универсальный язык программирования. Для обработки тек­стов с помощью регулярных выражений многие предпочитают использовать имен­но Perl, а не какой-либо другой язык. Вероятно, он уже установлен на вашей маши­не, но при необходимости вы можете найти описание процедуры установки по адресуhttp://www.

perl. org/get. html. Информацию о регулярных выражениях Perl можнополучить здесь: http://perldoc. perl. org/perlre. html. Не поймите меня преврат­но. Существует множество других языков, которые прекрасно справляются с регулярнымивыражениями, но наличие Perl в вашем арсенале инструментов всегда себя окупит.PCREPerl CompatiЬle Regular Expressions, или PCRE (http://www. pcre. org), - это би­блиотека регулярных выражений, написанная на языке С (8- и 16-разрядная версии). Онасостоит главным образом из функций, которые могут вызываться в любой среде раз­работки С или в любом другом языке, допускающем использование библиотек С.

Какговорит само ее название, данная библиотека совместима с регулярными выражениямиPerl 5 и включает некоторые средства из других реализаций регулярных выражений. Би­блиотека PCRE используется в текстовом редакторе Notepad++.Утилита pcregrep - это 8-разрядный инструмент, подобный grep, позволяющий исполь­зовать возможности библиотеки PCRE в командной строке. Вы работали с ним в главе 3.Информацию о его загрузке (с сайта ftp://ftp. csx. cam. ас. uk/puЬ/software/programming/pcre/) можно найти по адресу http://www. pcre. org.

Его версиюдля компьютеров Мае можно загрузить на сайте Macports (http://www. macports. org),выполнив команду sudo port install pcre (требуется предварительная установка инте­грированной среды разработки Xcode; для получения дополнительной информации обратитесьГnава 10. Конец начаnа117на сайт https: //developer. apple.com/technologies/tools/, вход на который воз­можен после прохождения процедуры регистрации). Для установки на платформе Windows(в виде двоичных файлов) перейдите по адресу http: //gnuwin32. sourceforge. net/packages/pcre.htm.Ruby (Oniguruma)Библиотека регулярных выражений Onigurwna входит в стандартный комплект поставкиRuby 1.9 (http: //oniguruma.rubyforge. org/).

Она написана на языке С специальнодля поддержки Ruby. Для знакомства с регулярными выражениями Ruby вполне подойдетвеб-приложение Rubular, поддерживающее версии 1.8.7 и 1.9.2 (http://www. rubular. сот;рис. 10.1). Кстати говоря, библиотека Oniguruma используется в TextМate - одном из самыхпопулярных текстовых редакторов для проrраммистов на Мае OS 10.Рис. 10.1. Использование регулярного выражениядля сопоставления с телефонным номером в RubularPythonPython (ht tp: / /www.

python. org) - универсальный язык программирования,поддерживающий регулярные выражения. Его создал Гвидо ван Россум в 1991 году. О ре­гулярных выражениях Python 3 можно прочитать здесь:http://docs.python.org/pyЗk/library/re.html?highlight=regular%20expressionsRE2RE2 - это библиотека регулярных выражений, написанная на языке С++. Библиотекаобладает высокой производительностью, однако бектрекинr (перебор с возвратом) в нейне предусмотрен.

Таким образом, в ней отсутствуют средства для работы с обратными118Глава 10. Конец началассылками (более подробно об этом см. http:/ /code. google. com/p/re2). Библи­отека доступна в виде пакета SPAN для Perl и в тех случаях, когда требуются обрат­ные ссылки, позволяет обращаться к функциям собственной библиотеки Perl. Ин­струкции относительно тоrо, как организовать вызовы API, вы найдете по адресуhttp:/ /code. google.

com/p/re2/wiki/CplusplusAPI. Интересное обсужде­ние библиотеки RE2 содержится в статье "Regular Expression Matching in the Wild"(http://swtch.com/-rsc/regexp/regexpЗ. html).Сопоставяение с теяефонными номерамив формате, принятом в США и КанадеПомните пример с телефонным номером в формате, принятом в США и Канаде, ко­торый мы рассматривали в первой главе? С тех пор ваши знания регулярных выраженийзначительно углубились.Ниже приведено аналогичное регулярное выражение, отличающееся от прежнего вы­ражения повышенной надежностью:л\(? (?: \d { 3 J ) \) ? [ - .

] ? (?: \d { 3}) [ - . ] ? (?: \d { 4} ) $Проверьте, как оно работает, воспользовавшись удобным для вас инструментом (видрезультата в Reggy представлен на рис. 10.2). Сейчас вы и сами способны разобратьсяв том, каково назначение каждого элемента приведенного выражения. Я горжусь вами.Но на всякий случай давайте сделаем это сообща.оГ)оReggyЛ\(?(?:\d{З})\)?[.-]?(?:\d{З})[.-]?(?:\d{4})$707-827-7019-(] hl•td'I AI! Q •<4.a:ctl UИ Q M1.1lt, n�-1M&tthfcv"1dРис. 10.2. Использование регулярного выражениядля сопоставления с телефонным номером в приложении ReggyГлава 10.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6367
Авторов
на СтудИзбе
310
Средний доход
с одного платного файла
Обучение Подробнее