С# парсинг в список

  • Автор темы Автор темы gs517
  • Дата начала Дата начала

gs517

Client
Регистрация
18.05.2013
Сообщения
138
Реакции
15
Баллы
18
Как реализовать парсинг исходного кода рег. выражением, с возможностью сохранять результат в список?

Аналог:

Безымянный.jpg
 
  • Оценить
Реакции: Prosto
var parse = project.Variables["parse"].Value;
var regex = new Regex("регулярка");
var zp_list = project.Lists["Список 1"];

regex.Matches(parse).Cast<Match>().ToList().ForEach(m=>zp_list.Add(m.Value));
 
Коллеги, подскажите, пожалуйста, почему у меня этот код что выше выложил LexxWork не работает?
Если вставляю его в экшен "С# код", меняю название переменной и название списка на свои, проблем нет.

Но когда добавляю свою регулярку:
Код:
Развернуть Свернуть Копировать
(?<=<.*var\ class=""postImg.*title="")htt(p|ps)://.*?(?=""><img)

То в логах появляется ошибка:
Компиляция кода Ошибка в действии "CS1009" "Нераспознанная управляющая последовательность".

Эта регулярка из другого моего C#-экшена и там она работает нормально, но ищет только одно первое совпадение и кладёт его в переменную, а мне надо все совпадения найти и в список сохранить.

Вот в таком виде у меня этот код не работает:
Код:
Развернуть Свернуть Копировать
var parse = project.Variables["parse"].Value;
var regex = new Regex("(?<=<.*var\ class=""postImg.*title="")htt(p|ps)://.*?(?=""><img)");
var zp_list = project.Lists["Список 1"];

regex.Matches(parse).Cast<Match>().ToList().ForEach(m=>zp_list.Add(m.Value));
 
Коллеги, подскажите, пожалуйста, почему у меня этот код что выше выложил LexxWork не работает?
Если вставляю его в экшен "С# код", меняю название переменной и название списка на свои, проблем нет.

Но когда добавляю свою регулярку:
Код:
Развернуть Свернуть Копировать
(?<=<.*var\ class=""postImg.*title="")htt(p|ps)://.*?(?=""><img)

То в логах появляется ошибка:


Эта регулярка из другого моего C#-экшена и там она работает нормально, но ищет только одно первое совпадение и кладёт его в переменную, а мне надо все совпадения найти и в список сохранить.

Вот в таком виде у меня этот код не работает:
Код:
Развернуть Свернуть Копировать
var parse = project.Variables["parse"].Value;
var regex = new Regex("(?<=<.*var\ class=""postImg.*title="")htt(p|ps)://.*?(?=""><img)");
var zp_list = project.Lists["Список 1"];

regex.Matches(parse).Cast<Match>().ToList().ForEach(m=>zp_list.Add(m.Value));
собака перед регуляркой должна быть
@"(?<=<.*var\ class=""postImg.*title="")htt(p|ps)://.*?(?=""><img)"
 
  • Оценить
Реакции: avtostopshik и Trader1985
Во, спасибо, работает! :dk:
Вроде мелочь какая-то, но сам бы я долго мучился с этим правильным синтаксисом.
 
В чем может быть дело? Использую вышевыложенный код - выдает:
"Компиляция кода Ошибка в действии "CS1010" "Символ новой строки в константе", непредусмотренный символ. Регулярку менял, но "CS1010" выдает постоянно

error.png error1.png
 
  • Оценить
Реакции: prambush
var parse = project.Variables["parse"].Value;
var regex = new Regex("регулярка");
var zp_list = project.Lists["Список 1"];

regex.Matches(parse).Cast<Match>().ToList().ForEach(m=>zp_list.Add(m.Value));

Добрый вечер!!
Код который я написал ниже позволяет удалить лишние пробелы. Прошу подсказать, как спарсить все результаты в таблицу и сразу почистить их от лишних пробелов.
Спасибо!

C#:
Развернуть Свернуть Копировать
string text2 = project.Variables["name"].Value;
project.Variables["name"].Value = text2.Trim();
 
Добрый вечер!!
Код который я написал ниже позволяет удалить лишние пробелы. Прошу подсказать, как спарсить все результаты в таблицу и сразу почистить их от лишних пробелов.
Спасибо!

C#:
Развернуть Свернуть Копировать
string text2 = project.Variables["name"].Value;
project.Variables["name"].Value = text2.Trim();


Если вы используете тот же метод, что цитируете, то:
C#:
Развернуть Свернуть Копировать
regex.Matches(parse).Cast<Match>().ToList().ForEach(m=>zp_list.Add(m.Value.Trim()));

m.Value.Trim()
 
  • Оценить
Реакции: trubiser

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