Главная » Просмотр файлов » Нэш Трей - C# 2010. Ускоренный курс для профессионалов (2010)

Нэш Трей - C# 2010. Ускоренный курс для профессионалов (2010) (1160865), страница 64

Файл №1160865 Нэш Трей - C# 2010. Ускоренный курс для профессионалов (2010) (Нэш Трей - C# 2010. Ускоренный курс для профессионалов (2010)) 64 страницаНэш Трей - C# 2010. Ускоренный курс для профессионалов (2010) (1160865) страница 642019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Ясггпд, большинство объектов, созданных из классов регулярных выражений, являются неизменяемыми. Главной "рабочей лошадкой" всей системы регулярных выражений является класс Еедех, находящийся в пространстве имен Яувгеш. Техг. Еедц1агЕхргеввсопв. Одним из наиболее распространенных способов его применения является создание экземпляра Еедех для представления регулярного выражения посредством передачи его конструктору строки шаблона поиска.

Затем этот экземпляр применяется к строке для поиска возможных совпадений. Можно также определить, где именно в строке находятся последовательные вхождения искомого шаблона. Давайте сначала рассмотрим пример того, как выглядит базовый поиск с еедех, а потом обратимся к более полезным способам применения Еедех. цзгпд Яузгеш; цв1пд Яувгеш.тенг.кедц1агЕхргевв1опв; рцЬ11с с1авв ЕпггурогпС ( вгагтс чогб Маго( зггспд() агдв ) ( 1Г( агдв.сепОСЬ < 1 Сопво1е.ыгтгесспе( "Вы должны предоставить строку." гесцгп? ?/ Создать регулярное выражение для поиска шаблона 1Р-адреса вгг1пд раггегп = Я" )бСб?сб?1.

1С1б?1б? . 1®б?1С? . 1%о? Сб!"; Редея гедех = пен еесех( рассегп ); масел шассь = седея.масс)1( агав(О) ): нв11е( шагсп.зцссевв ) сопво1е.кгсгеь1пе( "1Р-адрес найден в позиции (О) со " "значением (1)", завес.1пбех, шагов.уа1це загс)1 = шагсп.кехСМагсв()? ) ) Работа со строками 241 Код в этом примере производит поиск 1Р-адреса в строке, переданной в виде параметра командной строки. Поиск довольно топорный, но дальше он будет усовершенствован. Регулярные выражения могут состоять из литеральных символов.

которые нужно найти, а также управляющих символов, имеющих специальное назначение. Для защиты символов в регулярном выражении применяется хорошо знакомый метод обратного слэша. В данном примере 1с) означает десятичную цифру. Символы, снабженные суффиксом — знаком вопроса (7), означают одно или более вхождений предыдущего шаблонного символа регулярного выражения.

Обратите внимание на защищенные слэшем точки. Дело в том, что точка сама по себе в регулярном выражении имеет определеняый смысл. Незащищенная точка соответствует любому одиночному символу в позиции, где она находится. При объявлении регулярных выражений намного проще применять синтаксис дословных (тегЬайше) строк; это позволяет избежать чрезмерного . использования обратных олешей.

Если запустить код из предыдущего примера, передав ему в командной строке аргумент в кавычках: "Вот такой 1Р-адрес:123.123.1.123" то вывод будет выглядеть следующим образом: 1Р-адрес найден в позиции 19 со значением 123.123.1.123 В предыдущем примере создается новый экземпляр Редел по имени печек и затем с помощью метода Мат сЬ применяется шаблон к заданной строке. Результат соответствия сохраняется в переменной птатсЬ. Эта переменная содержит первое вхождение шаблона в строку.

Для определения, найдено ли соответствие регулярному выражению в строке, используется свойство Мат сЬ. Вцс се за. Далее следует код, получающий дополнительную информацию о найденном вхождении с помощью свойств Тпс)ех и )та1це. И, наконец, вызовом метода массь.

мехсмассЬ осуществляется переход к следующему соответствию в строке. и так до тех пор, пока не будут перебраны все вхождения шаблона в строке. В качестве альтернативы вместо вызова Маг сЬ. ХехСМатсЬ в цикле можно вызвать метод Ве9ех.максЬез для получения коллекции МаксЬСо11есг1оп, которая даст все вхождения сразу, поэтому перебирать их по одному не понадобится. Во всех примерах применения Ве9ех в настоящей главе вызываются методы экземпляра Ведах. У многих из таких методов.

например, МаксЬ и Еер1асе, также имеются статические версии, для которых предварительное создание экземпляра Верех не требуется, а нужно просто передать шаблон регулярного выражения при вызове метода. Поиск и группирование Если посмотреть на предыдущий пример, то все, что в нем происходит — это поиск по шаблону групп из десятичных цифр, разделенных точками, причем каждая группа может содержать от одной до трех цифр.

Речь о том, что такой грубый поиск обнаружит также соответствие и с некорректным 1Р-адресом вроде 999. 888. 777. 666. Более совершенный поиск 1Р-адреса должен выглядеть следующим образом: паапа аузсеит цзтп9 Вузоеи.техт.аечц1агЕхргевзаопэт рцЬ11с с1азз ЕпогуРоапк зоаоас тот б Маьп) зегто91) агоз ) 1 111 агчз.ьеп9СЬ < 1 ) ! сопзо1е.хгасеьше( "Вы должны предоставить строку." гесцгпт 242 Глава 8 О Создать регулярное выражение лля поиска шаблона 1Р-адреса. ввг1пд раесегп = 6" ( [ОЦ ? ьсПб? )2 [0-4) ьб) 25 [0-5] ) ь . " + 6" ([ОЦ?Я~с)? (2[0-4] Щ25 [0-5]) ~." + 6" ( [ОЦ?~с(~с(? ) 2 [0-4] ~с((25 [0-5] ) ~." + 6" ( [ОЦ? ~б~б? [2 [0-4] ~б) 25 [0-5] ) "; Яесех геоех = пен Ееоех( рассегп ); Масок шагов = геоех.нагой( агсз[0) нП11е( шассп.зцссезв ) Сопзо1е.кггсеьгпе( "1Р-алрес найден в позиции (О) со " + "значением (1)", шассп.1ппех, васса.за1це ); засол = шассп.йехГМассл О," Приведенное выше регулярное выражение содержит четыре группы одного и того же поискового шаблона [01]? Ысс)? ) 2 [0-4) '1с) ) 25 [ 0-5], разделенные точками, которые, конечно же, защищены.

Кикдое из этих подвыражений соответствует числу от 0 до 255 з. Такое регулярное выражение для поиска 1Р-адреса уже намного лучше. хотя все еще не идеально. Однако с небольшой тонкой настройкой его можно использовать для верификации 1р-адресов, переданных в строке. Таким образом, регулярные выражения можно применять для эффективной верификации пользовательского ввода, гарантируя, что он будет соответствовать определенной форме.

Например, существующий веб-сервер может ожидать ввода телефонных номеров США в формате (ххх) ххх-хххх. Регулярные выражения позволяют легко проверять корректность ввода номеров пользователями. Возможно, вы заметили, что в предыдущем примере в выражение поиска 1Р-адресов были добавлены скобки. Скобки используются для определения групп, формирующих подвыражения внутри общего регулярного выражения. []?уппы также могут содержать в себе другие группы. Таким образом, шаблон регулярного выражения, описывающий 1Р- адрес в предыдущем примере, формирует группу для каждой части 1Р-адреса.

К каждой индивидуальной группе внутри соответствия можно обращаться отдельно. Рассмотрим модифицированную версию того же самого примера: цз1пЧ Яузсезы цз1пд Яузсеш.техс.вечц1агЕхргезз1опз( рц)з11с с1азв ЕпсгуРогпс ( зсасьс чогб Мага( всг1пд[] агав ) ( 15( агЧв.ьепдсп < 1 ) сопзо1е.ыг1ге11пе( "вы должны предоставить строку." ) гегцгп; ) /I Создать регулярное выражение для поиска шаблона 1р-аЛРеса. всг1пд рассегп = 6" ( [ОЦ?101б? ) 2 [0-4) 1б) 25 [0-5] ) 1." + 6" ( [01)?1010? ) 2 [0-4] 10(25 [0-5) ) 1." + 6" ( [01)?1Фб? (2 [0-4) 10(25 [0-5] ) 1." + 6" ( [01]?1010? ) 2 [0-4) 10) 25 [0-5] ) "1 вечах гедех пен вечах( рагсегп )( Масса лассо гадах.насев( агдз[0) ); Подробный равбор специфики работы данного регулярного выражения выходит за рамки настоюцей книги.

В случае возникновения вопросов обращайтесь к одному из множества печатных или онлайновых руководств по регулярным выражениям, Работа со строками 243 нд[1е( шаксь.зцссезз ) ( Сопзо1е.нг1геЬ[пе( "1Р-адрес найден з позиции (О) со " "значением (1)", шаксь.1пс(ех, шакти.уа1пе )т Сопзо1е.нхасеьапе( "Группы:" ) т Вохеась( пхоцр д ап шаесь.пхосрз ) ( Сопзо1е.нх1севапе( "тх(0) в позиции (1)", д. да1це, д.тпк)ех ) т шапса = шаксп.нехгнагси О Для каждого соответствии добавлен цикл, выполнятощий итерацию по всем индивидуальным группам внутри соответствия. Как и можно было ожидать, в коллекции будет как минимум четыре группы, по одной для каждой части 1Р-адреса. Фактически, есть еще и пятый элемент группы — все совпадение.

Таким образом, одна из групп внутри коллекции групп, возвращенных масс)т. Сгоцрз, всегда будет содержать само полное соответствие. Если запустить приведенный выше код со следующей строкой: "Вот такой 1Р-адрес:123.123.1.123" то результат будет таким: 1Р-адрес найден в позиции 19 со значением 123.123.1.123 Группы: 123.123.1.123 з позиции 19 123 з позиции 19 123 з позиции 23 1 в позиции 27 123 в позиции 29 []7Уппы предоставляют блестящую возможность указать части заданной входной строки. Например, в некоторый момент, выполняя верификацию формата польаовательского ввода телефонного номера, можно также захватить область — группу кода междугородней связи — для последующего использования.

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

Тип файла
DJVU-файл
Размер
8,22 Mb
Тип материала
Высшее учебное заведение

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

Нэш Трей - C# 2010
Accelerated_C_2010-4565
3_syntax_overview
3_generics_1.cs
as_1.cs
boxing.cs
conversions_1.cs
implicit_type_1.cs
is_1.cs
references_1.cs
references_2.cs
references_3.cs
values_1.cs
4_classes_structs
4_abstract_classes_1.cs
4_beforefieldinit_1.cs
4_box_1.cs
4_box_2.cs
4_box_3.cs
4_box_4.cs
4_box_5.cs
4_class_definition_1.cs
4_compareto_1.cs
4_containment_example_1.cs
4_containment_example_2.cs
4_containment_example_3.cs
4_ctor_struct_1.cs
4_ctor_struct_2.cs
4_ctor_struct_3.cs
4_destructor_1.cs
4_destructor_2.cs
Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7054
Авторов
на СтудИзбе
259
Средний доход
с одного платного файла
Обучение Подробнее