Поиск строк с помощью регулярных выражений

Тип System.String сам по себе предлагает некоторые рудиментарные методы поиска вроде IndexOf, IndexOfAny, LastlndexOf, LastlndexOfAny и StartsWith. С помощью этих методов можно определить, содержит ли строка определенную подстроку, и где именно.

Однако эти методы становятся весьма неуклюжими и слишком примитивными, когда возникает необходимость в более сложном поиске строк. К счастью, библиотека классов .NET Framework содержит классы, реализующие регулярные выражения (regexp). Если вы еще не знакомы с регулярными выражениями, настоятельно рекомендуется изучить их синтаксис и способы их эффективного использования.

Синтаксис регулярных выражений сам по себе является языком. Возможности механизма регулярных выражений находятся наравне с аналогичными механизмами языков Perl 5 и Python. Полное описание регулярных выражений вместе с их синтаксисом выходит за рамки статьи. Тем не менее, ниже рассматриваются некоторые особенности использования регулярных выражений в .NET Framework.

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

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

И, наконец, регулярные выражения часто применяются для выполнения операций поиска с заменой. Операции такого рода базируются на предыдущих двух. Давайте посмотрим, как можно достичь этих трех целей с применением реализации регулярных выражений .NET Framework.

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100