Не работает действие выделить подсписок с регулярным выражением

anarbus

Client
Регистрация
16.07.2019
Сообщения
526
Благодарностей
18
Баллы
18
ZennoPoster 7.1.7.1

У меня есть 1 txt. Содержащий информацию в следующем формате:

Label{
New name for publish
New name1 for publish
New name2 for publish
}

Использую кубик: Операции над списком => Выделить подсписок
Указываю из какого txt забирать
Указываю в какой список записывать

Использую следующее регулярное выражение:
Код:
(?<=Label\{)[\w\W]*?(?=})
Выполняю кубик, ничего не происходит. Данные не копируются в другой список согласно регулярному выражению
Тестирую регулярку в конструкторе регулярных выражений - работает
Пробую забирать данные из списка, указав диапазон строк - работает
Пробую забирать через регулярку - не работает

Скрин кубика:
64290
 
Регистрация
07.08.2019
Сообщения
76
Благодарностей
80
Баллы
18
Попробуй вот эту регулярное выражение :
C#:
(?<=Label{)[\\w\\W]*?(?=})
 

anarbus

Client
Регистрация
16.07.2019
Сообщения
526
Благодарностей
18
Баллы
18
Регистрация
07.08.2019
Сообщения
76
Благодарностей
80
Баллы
18
Через C# код работает. Нужно?))
 

anarbus

Client
Регистрация
16.07.2019
Сообщения
526
Благодарностей
18
Баллы
18
Регистрация
07.08.2019
Сообщения
76
Благодарностей
80
Баллы
18
C#:
project.Lists["Список 1"].Clear();
var regex = new Regex("(?<=Label{)[\\w\\W]*?(?=})");
string str = string.Join("\r\n", project.Lists["Список 2"]);
regex.Matches(str).Cast<Match>().ToList().ForEach(a=>project.Lists["Список 1"].Add(a.Value));
 
  • Спасибо
Реакции: anarbus

anarbus

Client
Регистрация
16.07.2019
Сообщения
526
Благодарностей
18
Баллы
18
C#:
project.Lists["Список 1"].Clear();
var regex = new Regex("(?<=Label{)[\\w\\W]*?(?=})");
string str = string.Join("\r\n", project.Lists["Список 2"]);
regex.Matches(str).Cast<Match>().ToList().ForEach(a=>project.Lists["Список 1"].Add(a.Value));
Данное C# решение замечательно работает
Хотелось бы узнать, почему не работает в экшене
 
Регистрация
07.08.2019
Сообщения
76
Благодарностей
80
Баллы
18
Данное C# решение замечательно работает
Хотелось бы узнать, почему не работает в экшене
Для экшена подойдет такое регулярное выражение:
C#:
(?<=Label\{)[\w\W]*(?=})
Но по правилам экшена. Будет браться подсписок, поэтому экшен только лишь серединку брать не будет, а будет брать все.
 
Последнее редактирование:
  • Спасибо
Реакции: anarbus

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