Главная » Язык программирования C#

Регулярные выражения в C#

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

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

Для примера приведу парсер для кинопоиска(а точнее его малую часть) которую я писал для личных целей.

string str = "<h1 class=\"moviename-big\" itemprop=\"name\">Пэн: Путешествие в Нетландию</h1>";
string pat = "<h1 class=\"moviename-big\" itemprop=\"name\">(.*?)</h1>"; ;
Regex regex = new Regex(pat);
Match match = regex.Match(str);
while (match.Success)
{
   richTextBox1.Text=match.Groups[1].Value;
   match = match.NextMatch();
}

Данный кусок кода получает название фильма. Выдергиваем мы это самое название из кода страницы. А название фильма выделяется тэгом h1 с соответствующим классом и параметром микроразметки, которые от фильма к фильму никуда не денутся, а значит этот момент будет шаблонным, предсказуемым. Среди всего этого безобразия будет меняться только название фильма. Именно поэтому в строке pat(от pattern — образец) вместо названия фильма использовано то самое элементарное регулярное выражение (.+?) которая говорит о том, что тут может быть любое безобразие. Но это безобразие имеет некоторую ценность для программера, который в случае успеха нахождения строки подходящей шаблону, получит интересующий его момент с помощью

match.Groups[1].Value

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

Добавить комментарий

Ваш комментарий появится после модерации.