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

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

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

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

google. com/p/re2/), либо отключать этот режим для некоторыхчастей регулярных выражений, создавая атомарные группировки.64Глава 4. Альтернативы, группы и обратные ссылкиОсновная цель, которую я преследую в книге, - это ознакомление читателяс регулярными выражениями. Вопросов производительности я почти не каса­юсь, но именно с ними, по моему мнению, наиболее тесно связано использова­ние атомарных группировок.В главе 5 речь пойдет о символьных классах.О чем вы узнаnи в rnaвe 4• Каким образом альтернативы обеспечивают возможность выбора между двумяи более шаблонами.• Какие существуют модификаторы опций и как они используются в шаблоне.• Какие виды подшаблонов существуют.• Использование захватывающих групп и обратных ссылок.• Использование именованных групп и ссылок на них.• Использование незахватывающих групп.• Что такое атомарная группа.На заметку• Adobe Air - кроссплатформенная среда выполнения, позволяющая использоватьHTML, JavaScript, Flash и ActionScript для создания веб-приложений, способныхвыполняться в качестве автономных клиентских приложений без использова­ния браузера.

Более подробную информацию по этому вопросу можно получитьпо адресу http://www. adobe. com/products/air. html.• Python (http://www. python. org) - высокоуровневый язык программиро­вания, имеющий собственную реализацию механизма регулярных выражений(http://docs/python. org/library/re. html).• .NET (http://www. microsoft. com/net) - программная платформа для ком­пьютеров, работающих под управлением Windows, в которой также реализован меха­низм регулярных выражений (http:/ /msdn. microsoft. com/en-us/library/hs600312. aspx).• Более полное описание атомарных групп приведено на сайтах http://www.regularexpressions.

info/atomic. html и http://stackoverflow. сот/questions/6488944/atomic-group-and-non-capturing-group.Гnава 4. Аnыернативы, группы и обратные ссыnки65ГЛАВА SСимвоnьные кnассыВ этой главе речь пойдет о символьных классах, также известных как скобочныевыражения. Символьные классы упрощают сопоставление с одиночными символамиили последовательностями символов. Для многих классов предусмотрены сокращенныеформы записи, называемые сокращениями. Например, сокращение \d эквивалентноследующему классу:[0-9]которому соответствует любая одиночная цифра из диапазона 0-9. Классы способныобеспечивать именно ту степень специфичности, которая вам необходима. В этом смыс­ле они более универсальны, чем символьные аббревиатуры.Для выполнения приведенных ниже примеров можете использовать любой удобныйдля вас процессор регулярных выражений. Однако приведенные ниже описания примеровотносятся к веб-приложению Rubular, используемому совместно с браузером Firefox,и настольному приложению Reggy.Введите в области веб-страницы, предназначенной для размещения целевого текста,следующую строку.о..

# $ % &1981(2* + ' 3/4567<> ? @А В С D Е F G н I J к L М N о р Q R s т u v w х у zл[ \ ]а Ь с d е f g h i j k 1 m n о р q r s t u v w х у z{ 1 }-Вам вовсе не обязательно вводить все вручную. Этот текст хранится в файле ascii­graphic.txt, включенном в архив примеров.Мы начнем с использования символьного класса для поиска определенных буквлатинского алфавита, а именно гласных:[aeiou]Эти гласные должны выделиться в расположенной ниже поля ввода текстовой области(рис. 5.1 ).

А как бы вы организовали поиск гласных, записанных в верхнем регистре, иливсех гласных независимо от регистра?+С' 11· --rubul1н.comRubular-а Ruby regular expression ed1\or' • ' $ � ' • ( 1 • + • -'с16•А 9( \i. b17< "' > ., 'С D � F" G fl1 .c <1;!qh{ 1 j -2аЗ9/4, � ; � ;, " • r 1 " -t , -5О-I J Х L М 11 О Р ; • S Т U ',/ � Х 'i Z:i.Jklr- 11 op q : 'l " \1 V W X '/ :!.'• <"18> .,.2•З146€ABCDZ.FGfl! JJ: LY.NOP('.IS70V);Y.YZ1 \ 1 АlccctИfqЬ.B1кlmnlгq.1:!ltlv ... x�:ii • J -� :ge,, qLнcJ.: refereпce-·-•• �---"-->Cr�"'--._ --"-"� ....- J_.....__,..-..._......__...._-__,,_,..__,_,е-,а.,.�..,_.,_,,____.,_....,._._._•"- • •,1 ...�.Рис. 5. 1. Использование символьного класса в веб-приложении RubularВ классе можно указывать целый диапазон символов:[a-z]Этому классу соответствует любая одиночная буква нижнего регистра от а до z.Попробуйте выполнить поиск с некоторым поддиапазоном букв, например букв от а до f:[a-f]Конечно же, ничто не мешает вам указать в классе диапазон цифр:[0-9)или же их поддиапазон, например цифры 3, 4, 5 и 6:[3-6)А теперь расширим горизонт.

Если требуется выполнить сопоставление для четныхчисел в диапазоне от I О до 19, скомбинируйте два класса, расположив их один за другим:\b[l] [24680) \ЬМожете пойти еще дальше и организовать поиск всех четных чисел в диапазоне от Одо 99 (надеюсь, вы еще помните из школьного курса математики, что нуль также можносчитать четным числом):\Ь[24680] \bl \b[l-9) [24680) \ЬЕсли бы вам потребовалось создать символьный класс для сопоставленияс шестнадцатеричными цифрами, то как бы вы это сделали? Даю подсказку:[a-fA-F0-9)68Глава 5.

Символьные классыВ классах разрешается использовать символьные сокращения. Например, для сопос­тавления с пробельными и словарными символами можно создать следующий класс:[\w\s]который дает тот же результат, что и такой класс:[ a-zA-Z \t\n\r]но записывается гораздо короче.Инвертированные симвопьные кпассыПоскольку этот синтаксис вам уже встречался, я буду краток. Инвертированномусимвольному классу соответствуют символы, которые не перечислены в классе.Например, если вы не хотите находить соответствия гласным, можете использоватьследующий класс (проверьте самостоятельно, как это работает в RegExr, а затем сравнитеполученный результат с рис.

5.2):По существу, указывая циркумфлекс ( л) в начале класса, вы сообщаете движкурегулярных выражений: "Следующие символы мне не нужны". (Циркумфлекс должензаписываться в самом начале класса.)R•gEдSampJ..sMatc.h,,Communftyt showa·U{"••lou].. 5 .... &J'()��(,,1(о 1111Ну Sav-.d1 211 '1 З'I 11�' 1 1< ..

"'� ф>\wl il 1 6111 i7!,11 SrABCDEFGH I D l<iLMNO PQR STU VWXY:Z( J .... _.•J•bcdefgl,ljl<Jmnopqo•t.uv•,xy,{ 1} �IS\W\d\D\s\S[АВС)[�две]Match� •n'I ch•r•cter ехсер� for linebrea� if dotall ,s f•ls@R@gExp: /( ..... -ae,ou]/gpattem: { "" aeiou]flags: ОО capturing groups:Рис. 5.2. Использование uнвертuрованно,00 символьного класса в npwroжeнuu RegExrГлава 5. Символьные классы69Объединение и разностьо,.,,,,PreferencesAppearance/j Mat<:hed string colorО Colorlze sub-matchesStartup DefaultsО Use clipboard as Regular ExpressionС) Use dipboard as Testing StringUpdates� Check for updates on startupRegular Expresslon Syntax[Javaф�Рис.

5.3. Вкладка Preferencesпрuложенuя ReggyСимвольные классы ведут себя подобно наборам.В действительности другое название символьногокласса - символьиый набор. Эта функциональностьподдерживается не всеми реализациями. Однаков Java она поддерживается.В приведенном ниже примере используетсянастольное приложение Reggy, предназначенноедля компьютеров Мае (см. раздел "На заметку").Перейдя на вкладку Preferences (Параметры), по­казанную на рис. 5.3, я выбрал в списке RegularExpression Syntax (Синтаксис регулярных выраже­ний) вариант Java, а затем, используя список Font(Шрифт) на вкладке Format (Формаг), которая на ри­сунке не показана, установил размер шрифта 24 пун­кта для лучшей различимости текста.Для объединения двух наборов можно использо­вать выражения наподобие следующего:[0-3(6-9]]Данному регулярному выражению соответствует любая из цифр от О до 3 и от 6 до 9.Результат в окне приложения Reggy показан на рис.

5.4.Ql""IOReggy[0-3(6-9]].! 11 # $ % & 1 ( ) * + ' _ • /О 1 2 3 4 5 6 7 8 9:;<=>?@АВС D EFGH IJ KLMNO PQRSTUVWXYZ'[ \] л abcdefghijklmnopqrstuvwxyz{ 1 }-� Mo1tch AIJО Mзldlc Usa О t.lulli!h)eа lt!lltdlt.s F'olWldРис. 5.4. Объединение двух символьных наборов в Reggy70Гnава 5. Симвоnьные кnассыДля поиска соответствий символам, которые имеются только в одном из двух наборов(а по сути - символам, принадлежащим к разности наборов), можно использоватьвыражения наподобие следующего:л[a-z&& [ m-r]]которому соответствует любая буква от а до z за вычетом букв от m до r (рис. 5.5).еnnReggy[a-z&&[лm-r]]! 11 # $ % &1 ( )*+! • ' /О 1 2 З 4 5 6 7 8 9:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[ \] л abcdefghiJklmnopqrstuvwxyz{ 1 }-&, -..atd, Afl� M�dl C1seО Mul11l1ne11•dРис.

5.5. Получение разности двух си.мвольных наборов в ReggyСимвоnьные кnассы POSIXPOSIX (РогtаЫе Operating System Interface for UniX) - семейство стандартов,поддерживаемое IEEE. Оно включает стандарт регулярных выражений (ISO/IEC/IEEE9945:2009), который предоставляет набор именованных символьных классов следующеговида:[[:ХХХХ:]]где хххх - имя, например digit или word.Алфавитно-цифровые символы (буквы и цифры) представляет следующий класс:[[:alnum: J JРезультат его применения к пробному тексту в окне веб-приложения Rubularпредставлен на рис. 5.6.Глава S.

Символьные классы71+E"J Rubul,11r: "RuЬy regular а. ..+rubular.com4':iRubularа Ruby regular express1on ed�or{ { .alnшn J 11о6•• f $ \ " •l"• "- ,. ,. ., <,(�е� + , -з9..�A.BC D?: ':;" GA : .JP:tltN OP:R.sru v1tXYZ1' 1• b t' d;;tQh J. )k lm n op q r • t. w v 1,1 x � �(1)-2.00 •...=-IIDi""i'···н··-··1111111111аов111в1оа111.. .. > ') �н���a111111gaa11111a111a111 •Regex qulCk referer!i;eРис. 5.6. Применение класса Ш1фавитно-цифровых символов POS/X в RubularВместо этого класса достаточно использовать символьное сокращение \ w. Что прощедля ручного ввода: символьный класс POSIX или сокращение? Вы понимаете, к чемуя клоню: выигрывает то, что короче.

Признаюсь, я не очень часто использую классыPOSIX. И тем не менее вам следует знать об их существовании.Для представления алфавитных символов в верхнем и нижнем регистре используйтеследующий класс:[ [:alpha:]]Весь диапазон символов ASCII представляет следующий класс:[ [:ascii:]]Разумеется, также существуют инвертированные классы:Следовательно, мя представления неалфавитных символов можно использовать такойкласс:[ [: лalpha:] ]Для представления пробелов и символов табуляции используется такой класс:[ [: space: ] ]Для представления всех пробельных символов предназначен следующий класс:[[:Ьlank:J]Полный перечень символьных классов POSIX приведен в табл. 5.1.72Глава S.

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

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

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