Regex - Номера совпадений

bezanetwork

Client
Регистрация
30.08.2020
Сообщения
71
Благодарностей
1
Баллы
8
Есть ли способ через регулярку внести последние 10 строк в список?
 

default

Client
Регистрация
27.09.2018
Сообщения
127
Благодарностей
28
Баллы
28
самый даунский, это скорее всего суметь получить количество совпадений по данной регулярке(на форуме думаю есть решения).
А дальше уже используя это число - брать по одному совпадению и через счетчики/if брать 10 совпадений.

Ну например у тебя 280совпадений. Берёшь 280ое совпадение и суёшь в список. Потом через обработку переменных уменьшаешь это число до 279. Берешь 279ое совпадение, суешь в список. И т.д.. Как набирается 10шт - прекращать добавлять.

Там уже либо доп.переменную вводи, чтобы считать 10шт, либо кол-во совпадений изначально запоминать и ожидать например числа 270 - которое не брать, либо вообще кол-во строк в списке считать в начальный момент и сколько нужно в самом конце, хз.

Способ конечно самый костыльный на мой взгляд, самые адекватные способы это через c# какие-нибудь в 1 кубик буквально.
 
  • Спасибо
Реакции: bezanetwork

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 022
Благодарностей
1 421
Баллы
113
C#:
string regex = @"(?<=\{)[\w\W]*?(?=})";         // В @"пишем свою регулярку"
int k = 10;                                        // Выставляем количество совпадений
var R_list = project.Lists["List0"];            // Итоговый список
string text = project.Variables["GET"].Value;    // Где ищем
List <string> list = new List <string>();
list.AddRange(Macros.TextProcessing.Regex(text, regex).Select(g => g.FirstOrDefault()));
R_list.Clear();
for(int i = list.Count-k; i<list.Count;i++)
    R_list.Add(list[i]);
 
  • Спасибо
Реакции: Igorii и bezanetwork

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