Обработка текста - номера совпадений в переменные

kolllak

Client
Регистрация
16.08.2011
Сообщения
41
Благодарностей
5
Баллы
8
Подскажите пожалуйста мозг сломал.
Есть переменная - содержит php-код,
делаю обработку текста по регулярке - 3 совпадения
нужно все три положить в соответствующие им переменные.
2016-07-25_20-56-00.png

что нужно указать в номер совпадения при таком раскладе?
на скриншоте значение "0"
пробовал "0,1,2"
пробовал оставить пустым,
сохраняет только первое.
Смущает единичное число названия поля "Номер совпадения." Если сохраняет только одно значение зачем тогда таблица ниже?
 

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 264
Баллы
113
C#:
var matches = Regex.Matches(project.Variables["ПхпКод"].Value,"регулярка").Cast<Match>().Select(x=>x.Value).ToList(); // Совпадения ложим в список
for (int i=0; i<matches.Count; i++)
{
   project.Variables["block"+i.ToString()].Value =  matches[i];
}
 
  • Спасибо
Реакции: kirsa

kolllak

Client
Регистрация
16.08.2011
Сообщения
41
Благодарностей
5
Баллы
8
спасибо) сделаю в с++
а для понимания логики работы именно в стандартном кубике обработки текста как делать?
а то не всегда есть добрый человек который поможет)
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 271
Благодарностей
5 856
Баллы
113
Можно в стандартном кубике. Распределение в переменные в данном случае работает только при групповой регулярке, см. подробнее в справке - http://zennolab.com/wiki/ru:actions:text#использование-регулярных-выражений
Поэтому нужно сложить все совпадения в список, потом список разбить на переменные.
 

Alelsey1611

Client
Регистрация
18.08.2017
Сообщения
401
Благодарностей
27
Баллы
28
Можно в стандартном кубике. Распределение в переменные в данном случае работает только при групповой регулярке, см. подробнее в справке - http://zennolab.com/wiki/ru:actions:text#использование-регулярных-выражений
Поэтому нужно сложить все совпадения в список, потом список разбить на переменные.
А как без групповой регулярки сразу положить стандартным кубиком все совпадение в переменные?
 

Alelsey1611

Client
Регистрация
18.08.2017
Сообщения
401
Благодарностей
27
Баллы
28
C#:
var matches = Regex.Matches(project.Variables["ПхпКод"].Value,"регулярка").Cast<Match>().Select(x=>x.Value).ToList(); // Совпадения ложим в список
for (int i=0; i<matches.Count; i++)
{
   project.Variables["block"+i.ToString()].Value =  matches[i];
}
C#:
var matches = Regex.Matches(project.Variables["Variable17"].Value,"(?<=\()\$.*?(?=\))").Cast<Match>().Select(x=>x.Value).ToList(); // Совпадения ложим в список
for (int i=0; i<matches.Count; i++)
{
   project.Variables["cupon"+i.ToString()].Value =  matches[i];
}
Что-то оно у меня не работает?
Лог:
Screenshot_20170827-102838.png
 
Последнее редактирование:

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 264
Баллы
113
Скинь код
 

Alelsey1611

Client
Регистрация
18.08.2017
Сообщения
401
Благодарностей
27
Баллы
28
Код:
var matches = Regex.Matches(project.Variables["Variable17"].Value,"(?<=\()\$.*?(?=\))").Cast<Match>().Select(x=>x.Value).ToList(); // Совпадения ложим в список
for (int i=0; i<matches.Count; i++)
{
   project.Variables["cupon"+i.ToString()].Value =  matches[i];
}
 

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 264
Баллы
113
C#:
var matches = Regex.Matches(project.Variables["Variable17"].Value,@"(?<=\()\$.*?(?=\))").Cast<Match>().Select(x=>x.Value).ToList(); // Совпадения ложим в список
 
  • Спасибо
Реакции: Alelsey1611

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