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

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

kolllak

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

что нужно указать в номер совпадения при таком раскладе?
на скриншоте значение "0"
пробовал "0,1,2"
пробовал оставить пустым,
сохраняет только первое.
Смущает единичное число названия поля "Номер совпадения." Если сохраняет только одно значение зачем тогда таблица ниже?
 
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
спасибо) сделаю в с++
а для понимания логики работы именно в стандартном кубике обработки текста как делать?
а то не всегда есть добрый человек который поможет)
 
Можно в стандартном кубике. Распределение в переменные в данном случае работает только при групповой регулярке, см. подробнее в справке - http://zennolab.com/wiki/ru:actions:text#использование-регулярных-выражений
Поэтому нужно сложить все совпадения в список, потом список разбить на переменные.
 
Можно в стандартном кубике. Распределение в переменные в данном случае работает только при групповой регулярке, см. подробнее в справке - http://zennolab.com/wiki/ru:actions:text#использование-регулярных-выражений
Поэтому нужно сложить все совпадения в список, потом список разбить на переменные.
А как без групповой регулярки сразу положить стандартным кубиком все совпадение в переменные?
 
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
 
Последнее редактирование:
Код:
Развернуть Свернуть Копировать
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];
}
 
C#:
Развернуть Свернуть Копировать
var matches = Regex.Matches(project.Variables["Variable17"].Value,@"(?<=\()\$.*?(?=\))").Cast<Match>().Select(x=>x.Value).ToList(); // Совпадения ложим в список
 
  • Оценить
Реакции: Alelsey1611

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