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

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

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

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

tale,RegExp,'0·9] gpattern:0-9)fl.ags: gО upЬ,r,n9 groups:Рис. 2.3. Поиск вхождений цифр в окне RegExr с помощью символьного класса [ 0-9]Введите в верхнем поле RegExr выражение [ 12 ] и проанализируйте результат. Со­кращенная форма записи класса для цифр в виде метасимвола \d короче и проще, но необладает возможностями и гибкостью символьных классов. С помощью класса можноточно указать, вхождения каких цифр требуется найти. Я использую символьные классыв тех случаях, когда не могу использовать сокращение \d (оно не всегда поддерживает­ся) или когда требуется избирательно указывать цифры, подлежащие сопоставлению. Вовсех остальных случаях я использую сокращение \d в силу его простоты и компактностисинтаксиса.Соответствие нецифровым симвояамКак это свойственно многим символьным сокращениям, определяемые ими зако­номерности соответствия можно легко обратить (для этого существует техническийтермин - инверсия). Например, для того чтобы задать сопоставление с символами, неявляющимися цифрами, достаточно использовать следующее символьное сокращение(с записью О в верхнем регистре):\DАпробируйте его с помощью приложения RegExr.

Использование буквы О в верх­нем регистре вместо нижнего позволяет находить вхождения нецифровых символов(рис. 2.4).Гnава 2. Сопоставnение с простыми wабnонами31S RegExrSilmpt•.sМ.·tch\DНу SavedCommun1ty} show aU� globe.lU lgnor�as�LJ extendedLJ dot�IIL.J multilin@'",.,,\dHcvl а бhip J hi!Иng'\,.a'!sed tne Unei vJa!s driVe'n bly StDrms 1:о �е rooldd::нтЬу Ь::>w.ands the So\..11:ti Polie;,.anlc:I hov/from 1:h,м,а! sh,e 'rn.ade h.ir:Ь:iu)'S&to the tropk.al Uзtih..ide ьf the Great \:)'adflo Oc.ean: and pf tt,4e strangethlngs thattЬef�I; l!ind int v"1at.

manner tne �cyent t,,1arjner'e c:ame Ьасk 00hi!. oW'I Oo\.inЬy,,.\D\S[АВС][�•всJ1 I Jib � зn anr;y'ent:' Marinere{,2 1 j And1 he sЬoppeth <in� of, lt,ree':3 !I 1re.y t:t,ytong ,gi-eyl.Ьe�� 8nd thyj9Jittlerfng 111у.е'7'NoW )'A,,erero\oia s.tr,pp4!St. me?I[a·z]M•tcheir •ny cha.-.ct�r. e.xc•pt for HneЬreaks: 1f dotall 1а falи.! Виt st:ill he holds the i...edding-guestz.rТhеге Wi!!S а Ship, q\Joth her-r•нау� ifi t:t,ou•r.t1 got а laughsome ь.1.._RegExp� /\D/gpattl!-rn: \DRag.s: gО captunng groups·Рис. 2.4.

Поиск вхождений нецифровых символов в окне RegExrс помощью символьного сокращения \ DСоответствие сnоварным и несnоварным симвоnамВведите в RegExr вместо \ О следующее символьное сокращение:\wВ нижнем текстовом поле выделятся все символы из числа тех, которые могут вхо­дить в состав слов (при условии, что по-прежнему установлен флажок global).

Различиемежду символьными сокращениями \D и \w состоит в том, что сокращению \0, помимобукв и символа подчеркивания, соответствуют также пробельные символы, знаки пун­ктуации, кавычки, дефис, прямая косая черта, квадратные скобки и ряд других символов,тогда как сокращению \w соответствуют только словарные символы, т.е. те, которые мо­гут входить в состав слов: буквы, цифры и символ подчеркивания.Для текстов на английском языке сокращение \w фактически означает то же самое,что и следующий символьный класс:[_a-zA-Z0-9]Этот класс ограничен диапазоном символов, входящих в набор ASCII, за ис­ключением управляющих символов.

Более подробно о сопоставлении с симво­лами, числовые коды которых выходят за пределы набора ASCII, вы узнаетев главе 6.32Глава 2. Сопоставление с простыми шаблонамиДля поиска вхождений несловарньtх символов, т.е. тех, которые не относятся к катего­рии словарных, используется буква W в верхнем регистре:\WЭто символьное сокращение совпадает с пробельными символами, знаками пунктуа­ции, а также символами других типов, которые не встречаются в данном примере. При­веденное выше сокращение эквивалентно следующему символьному классу:[ л _a-zA-Z0-9]Символьные классы обеспечивают заведомо более точный контроль соответствий, новполне может быть, что вы просто не захотите или не сочтете нужным вручную вво­дить длинный список символов.

В подобных ситуациях срабатывает, как говорят, прин­цип "минимизации клавиатурного ввода" ("fewest keystrokes win"). В других же случаяхдля того, чтобы в точности обеспечить получение нужного результата, без указания спи­ска конкретных символов не обойтись. Как именно следует поступить, вы решаете в за­висимости от ситуации.Для сравнения проверьте, как работают в RegExr следующие два символьных класса:[Л\W]иУловили разницу?В табл. 2.1 приведен обширный список метасимволов, используемых в качестве со­кращенной формы записи символьных классов. Не каждое из приведенных сокращенийработает во всех процессорах регулярных выражений.Таблица 2.1.

Символьные сокращенияСимвольное сокращениеОписание\а\Ь[\Ь]\ВЗвуковой сигнал\схУправляющий символ\d\DЦифра\d ххх\f\r\nДесятичное значение кода символа\о хххВосьмеричное значение кода символа\s\SПробел (пустой символ)Граница словаВозврат на шаг (забой)Не граница словаНе цифраПеревод форматаВозврат кареткиПеревод строкиНе пробел (непустой символ)Глава 2. Сопоставление с простыми wабnонами33Окончание табл. 2.1Символьное сокращениеОписание\tСимвол горизонтальной табуляции\vСимвол вертикальной табуляции\wСловарный СИМВОЛ\WНе словарный символ\0Пустой символ (Null)\х ххШестнадцатеричное значение кода символа\и ххххСимвол в кодировке UnicodeСоответствие пробеяамДля задания соответствия пробелам используется следующее символьное сокращение:\sВведите его в RegExr и посмотрите, какие символы окажутся выделенными в нижнемтекстовом поле (рис.

2.5). Тот же результат можно получить с помощью следующего сим­вольного класса:[ \t\n\r]Иными словами, этому классу соответствуют:пробелы;символы горизонтальной табуляции;символы перевода строки;символы возврата каретки.••••ь_:.В приложении RegExr выделяются цветом пробелы и символы табуляции, ноне символы перевода строки и возврата каретки.�Как нетрудно догадаться, у символьного сокращения \s имеется "партнер': Для поис­ка соответствий непробельным символам используйте следующее сокращение:\SЕму соответствует все, что не является пробелом. Тот же результат можно получитьс помощью такого класса:[ л \t\n\r]или же такого:Апробируйте эти выражения в RegExr и проверьте, какие результаты при этом полу­чаются.Кроме тех символов, которые соответствуют сокращению \s, существуют другие, ме­нее известные пробельные символы. Символьные сокращения для этих, а также другихредко используемых символов приведены в табл. 2.2.34Глава 2.

Сопоставление с простыми wабnонамиRe9ExrR.e:placeHatchSamplest\sMySave:dC.ommunitys.how al•J� glcbalТНЕ RIME OF тне ANC'VENТ МАЯ.[NЕRЕ. IN SEV� PARTS.wARGUMENТ\dHow • Shlp t,aving passed the L,ne was driven Ьу Storms to the roldCount,y towards the South Pole; and hov, from th•nc.e s;hli! mad• her courseto the troplc.iil L8titude of the Great Pacific Oet!an; .and of the strangethlngs that befell1 and ln what manner the Ancyent Marinere came back tohis о\М'I Ccuntry.J.l2 1D\s\S[АВС][ЛАВС][a-z]lt 1s an ancyent Mвrinere,And he stoppeth опе of U,ree:"Ву thy long grey Ь.ard .and thy glitt:ering еуе"Nov� wherefore stoppest me ?Metch�s an-1 ch11rarter.

ексерt. for llnl!!bre•k.s 1f dot.зll ,s false.But sbll hl! holds the wedding-guest-­There "'85 а Shlp, quoth he-'"Nay. lf thou'st got а laughsome t:.le,RegExpi1gpattern: sftap: gО c.apturu'lg grou,-s1Рис. 2.5. Поиск всех вхождений пробельнь1х символов в окне RegExrс помощью символьного сокращения \ sТаблица 2.2. Символьные сокращения дпя пробельных символовСимвольное сокращениеОписание\fПрогон страницы\hГоризонтальный пробел\ННе горизонтальный пробел\nПеревод строки\rВозврат каретки\tСимвол горизонтальной табуляции\vСимвол вертикальной табуляции (вертикальный пробел)\VНе вертикальный пробелСоответствие произвопьному симвопуСуществует способ задать соответствие любому одиночному символу с помощью ре­гулярных выражений, и это достигается за счет использования символа точки (U+002E).За исключением некоторых особых ситуаций, точке (.

) соответствует любой символ,кроме символов, обозначающих конец строки.Глава 2. Сопоставление с простыми шаблонами35Отключите в приложении RegExr режим глобального поиска, сняв флажок global. Этоприведет к тому, что сразу же после того, как в целевом тексте будет найдено первое со­впадение, регулярное выражение прекратит свою работу.Теперь для поиска вхождения произвольного одиночного символа достаточно ввестив верхнем текстовом поле RegExr символ точки.Как показано на рис. 2.6, в качестве первого символа, соответствующего точке, регу­лярное выражение находит символ Т.RegExrRept•c•"o1tchLJ glabolТНЕ RIME OF ТНЕ Al�CYENT MARHJERE, IN SEVEN PARTS.ARGUMEN'Т,'"'\dHow а Ship ho1ving pass:ed the Line YJaS driven bv 51:orms t:o tha cold\ОCountry towards tl,e South Pole: and how from thence she made l,er cours•to the trop/cal latltude of the Great Padtlc Oc:ean: and of the stтangethlngs that be(ell: •nd 1n N'lat manner the Ancyent Marinere c•m• b•c.k tohis OYl'I Country\S[АВС}!.[ АВС)It is an •ncyent Mar,nere,And he .stoopeth one of three:"Bv thv lon9 9rey b•o1rd .ind thy 91il:ter1ngatch•• •n'f c.harader ex:..pt for l,ne•v•Ь.rl!ak5 lf dot.illl ls.

fal1•"Now •.tierefore stoppest me"Re.gExp: JJJNitl.ll!rn:Aag,:О Cilpturlng 9"0UJ)'SIАРис. 2.6. Поиск произвольного одиночного символа в окне RegExrс помощью символа "точка" (. )Если нужно обеспечить совпадение шаблона с целой фразой ТНЕ RIME, используйтерегулярное выражение, состоящее из восьми точек:Однако такой способ непрактичен, в связи с чем я рекомендую применять подобныедлинные последовательности точек как можно реже или вообще отказаться от них. В данномслучае вместо ввода восьми точек лучше воспользоваться следующим квантификатором:. { 8}который обеспечит совпадение регулярного выражения с первыми двумя словами целе­вого текста и пробелом между ними, хотя это и делается довольно топорно.

Чтобы вамстало понятно, почему я назвал этот способ "топорным", вновь включите глобальныйрежим поиска, установив флажок global, и вы убедитесь в том, что в действительностиданный способ оказывается почти бесполезным. В результате применения последнего ре­гулярного выражения к целевому тексту выделяются последовательности, состоящие из36Глава 2. Сопоставление с простыми шаблонамивосьми произвольных символов каждая,в которые не попадают лишь последние симво­лы некоторых строк текста.Применим другой подход, в котором используется привязка к границам слов и их началь­ным и последним буквам. Введите в верхнем текстовом поле окна RegExr следующий текст:\ЬА. {S}T\bЭто выражение характеризуется чуть более высокой специфичностью. (Попытайтесьтрижды произнести вслух слово специфичность.) Ему соответствует слово ANCYENT устаревшая форма написания слова ancient.

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

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

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