Парсинг в разные переменные с помощью одного кубика С#

Punisher

Client
Регистрация
27.12.2014
Сообщения
43
Благодарностей
4
Баллы
8
Здравствуйте, использую в своем шаблоне такой кубик для парсинга информации с сайта:

//Получаем название новости
string regex = @"(?<=title="").*?(?="")";
string text = project.Variables["shortnews_donor"].Value;
var reg = new System.Text.RegularExpressions.Regex(regex, System.Text.RegularExpressions.RegexOptions.None);
project.Variables["z_title"].Value = reg.Matches(text)[0].ToString();
//Получаем ссылку на полную новость
string regex2 = @"(?<=href="").*?(?="")";
var reg2 = new System.Text.RegularExpressions.Regex(regex2, System.Text.RegularExpressions.RegexOptions.None);
project.Variables["z_fullstorylink"].Value = reg2.Matches(text)[0].ToString();
//Получаем ссылку на картинку короткой новости
string regex3 = @"(?<=<img\ src="").*?\.jpg";
var reg3 = new System.Text.RegularExpressions.Regex(regex3, System.Text.RegularExpressions.RegexOptions.None);
project.Variables["z_shortstoryImage"].Value = reg3.Matches(text)[0].ToString();

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

Harvi

Client
Регистрация
05.06.2014
Сообщения
60
Благодарностей
18
Баллы
8
Если правильно понял, он не будет выходить если reg.Matches(text)[0].ToString(); выбросит exception о том что элемента с индексом 0 нет.
Попробуйте сделать так:
Код:
var match1 = reg.Matches(text);
if (match1.Count > 0)
    project.Variables["z_title"].Value = match1[0].ToString();
вместо
Код:
project.Variables["z_title"].Value = reg.Matches(text)[0].ToString();
О остальными аналогично
 
Последнее редактирование:
  • Спасибо
Реакции: Punisher

Punisher

Client
Регистрация
27.12.2014
Сообщения
43
Благодарностей
4
Баллы
8
Так шаблон вообще не работает, вот что в логе :
Компиляция кода Ошибка в действии "CS0246" "Не удалось найти имя типа или пространства имен "Matches" (пропущена директива using или ссылка на сборку?)". [Строка: 4; Cтолбец: 1]
 

Harvi

Client
Регистрация
05.06.2014
Сообщения
60
Благодарностей
18
Баллы
8
Так шаблон вообще не работает, вот что в логе :
Компиляция кода Ошибка в действии "CS0246" "Не удалось найти имя типа или пространства имен "Matches" (пропущена директива using или ссылка на сборку?)". [Строка: 4; Cтолбец: 1]
Поправил прошлый код.
 
  • Спасибо
Реакции: Punisher

Punisher

Client
Регистрация
27.12.2014
Сообщения
43
Благодарностей
4
Баллы
8
Такой вариант работает, спасибо!
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)