Как сохранить в переменные сразу несколько результатов regex. Или сохранить в один список

rol

Client
Регистрация
19.09.2017
Сообщения
42
Благодарностей
7
Баллы
8
Добрый день помогите кто знает как сохранить в переменные сразу несколько результатов regex
Или просто сохранить в один список или таблицу разные значения при парсинге

Кусок кода для примера откуда парсить

<span class="name">Вася</span>
<span class="yer">33 года</span>


<span class="name">Маруся</span>
<span class="yer">23</span>


<span class="name">Атон</span>
<span class="yer">22</span>

есть две регулярки
1 парсит имена (?<=<span\ class="name">).*(?=</span>)
2 парсит сколько лет (?<=<span\ class="yer">).*(?=</span>)

Как реализовать что бы значения сохранялись в таблицу или список в таком виде

Вася 33 года
Маруся 23
Атон 22

Заранее спасибо .
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 100
Баллы
113
Экшен "Свой код - C# код"
C#:
IZennoList list = project.Lists["List"]; // список проекта, в который класть результат
string input = project.Variables["text"].Value; // переменная проекта с текстом

Regex reg = new Regex(@"(?<=<span class=""name"">)[\w\W]*?(?<=<span class=""yer"">).*?(?=</span>)");
Regex regName = new Regex(@"^.*?(?=<)");
Regex regYer = new Regex(@"(?<=>).*?$");

list.AddRange(from Match m in reg.Matches(input)
    where m.Success
    select regName.Match(m.Value).Value.Trim() + " " + regYer.Match(m.Value).Value.Trim());
 
  • Спасибо
Реакции: WalkODoff и one

rol

Client
Регистрация
19.09.2017
Сообщения
42
Благодарностей
7
Баллы
8
Большое Спасибо , от души душевно в душу ))
 

87v

Client
Регистрация
28.09.2016
Сообщения
40
Благодарностей
23
Баллы
8
Здравствуйте. Похожая проблема, помогите пожалуйста.

есть текст
<ul><li class="selected" id="447963">__BoBBy__</li><li class="" id="493376">__isabel</li><li class="" id="575008">__Robin1989__</li><li class="" id="549772">_-_bonzai-_-</li><li class="" id="471137">_Annabelle_</li><li class="" id="574520">_Bart_</li><li class="" id="576209">_Beatrix_</li><li class="" id="580441">_beertje_</li><li class="" id="464634">_Bianca_</li><li class="" id="632122">_Bo_</li><li class="" id="461973">_Boselfje_</li><li class="" id="454173">_Bosnimf_</li><li class="" id="524287">_Bubbels_</li><li class="" id="265165">_Bullet_</li><li class="" id="474625">_JBS_</li><li class="" id="531732">_krullebol_</li><li class="" id="484163">_Lady_Bird_</li><li class="" id="541373">_Liesbeth_</li><li class="" id="467567">_mamavanboris_</li><li class="" id="455002">_Robin</li></ul>
составляю 2 регулярки.

первая парсит id

(?<=id=").*?(?=">)

вторая login

(?<=">).*?(?=</li>)

никак не могу объединить их в группы, прошу помощи.

нужно добавить в список или таблицу, так :
447963;__BoBBy__
493376;__isabel
575008;__Robin1989__
и тд

Спасибо
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 100
Баллы
113
Похожая проблема, помогите пожалуйста.
C#:
IZennoList list = project.Lists["List"]; // список проекта, в который класть результат
string input = project.Variables["text"].Value; // переменная проекта с текстом

Regex reg = new Regex(@"(?<=id="").*?(?=<)");
list.AddRange(from Match m in reg.Matches(input)
    where m.Success
    select m.Value.Replace("\">", ";"));
 
  • Спасибо
Реакции: 87v

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 458
Благодарностей
8 682
Баллы
113
Здравствуйте. Похожая проблема, помогите пожалуйста.

есть текст


составляю 2 регулярки.

первая парсит id

(?<=id=").*?(?=">)

вторая login

(?<=">).*?(?=</li>)

никак не могу объединить их в группы, прошу помощи.

нужно добавить в список или таблицу, так :
447963;__BoBBy__
493376;__isabel
575008;__Robin1989__
и тд

Спасибо
на основе снипета Dimionix (в этой же теме)..
Код:
IZennoList list = project.Lists["List"]; // список проекта, в который класть результат
string input = project.Variables["text"].Value; // переменная проекта с текстом
Regex reg = new Regex(@"(?<=<li\ class="".*""\ id="").*?(?=</li>)");
Regex regName = new Regex(@".*?(?="">)");
Regex regYer = new Regex(@"(?<="">).*");
list.AddRange(from Match m in reg.Matches(input)
    where m.Success
    select regName.Match(m.Value).Value.Trim() + ";" + regYer.Match(m.Value).Value.Trim());
 
  • Спасибо
Реакции: 87v и Dimionix

87v

Client
Регистрация
28.09.2016
Сообщения
40
Благодарностей
23
Баллы
8
Привет.
Помогите пожалуйста еще по одной регулярке (:an:никак не могу составить по вашим примерам )

есть
profile;userID=2555658971;ret=" title="die Visitenkarte dieses Mitglieds anzeigen"><b>username1</b></a></td>
profile;userID=58971;ret=" title="die Visitenkarte dieses Mitglieds anzeigen"><b>username2</b></a></td>
нужно
2555658971;username1
58971;username2
 

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