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

gs517

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

Аналог:

Безымянный.jpg
 
  • Спасибо
Реакции: Prosto

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
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));
 

Trader1985

Client
Регистрация
14.12.2011
Сообщения
131
Благодарностей
31
Баллы
28
Коллеги, подскажите, пожалуйста, почему у меня этот код что выше выложил 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));
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Коллеги, подскажите, пожалуйста, почему у меня этот код что выше выложил 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

Trader1985

Client
Регистрация
14.12.2011
Сообщения
131
Благодарностей
31
Баллы
28
Во, спасибо, работает! :dk:
Вроде мелочь какая-то, но сам бы я долго мучился с этим правильным синтаксисом.
 

Prosto

Client
Регистрация
29.09.2010
Сообщения
24
Благодарностей
2
Баллы
3
В чем может быть дело? Использую вышевыложенный код - выдает:
"Компиляция кода Ошибка в действии "CS1010" "Символ новой строки в константе", непредусмотренный символ. Регулярку менял, но "CS1010" выдает постоянно

error.png error1.png
 
  • Спасибо
Реакции: prambush

trubiser

Client
Регистрация
02.12.2016
Сообщения
211
Благодарностей
14
Баллы
18
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();
 
Регистрация
05.06.2019
Сообщения
570
Благодарностей
454
Баллы
63
Добрый вечер!!
Код который я написал ниже позволяет удалить лишние пробелы. Прошу подсказать, как спарсить все результаты в таблицу и сразу почистить их от лишних пробелов.
Спасибо!

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

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