перебор регуляркой немаленького файла происходит слишком долго

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 022
Благодарностей
1 424
Баллы
113
Собственно вопрос в названии темы уже.
В 3Мб текста регулярка находит/не находит нужное совпадение примерно за 1мин 40сек.
Использую стандартный кубик зенки, но не думаю, что переписав его в "свой код" ситуация сильно изменится.
Думал, сперва определить диапазон, в котором находится нужный кусок кода для проверки, и там уже парсить, но это уже лишнее действие, отнимающее столько же времени.

Работаю не на "калькуляторе".
Какие есть варианты ускорить это дело?
 

molotok

Client
Регистрация
17.04.2015
Сообщения
733
Благодарностей
358
Баллы
63
Только что попробовал сделать поиск нужного значения в строке списка.
Сгенерировал 400 тыс строк (9,5 мб)
Сделал перебор списка и поиск нужного значения в нем(последняя строка), до последней строки дошло за 2-3 секунды.

Попробуйте использовать списки.
Регулярку я не использовал, использовал метод contains
 
  • Спасибо
Реакции: Alexmd

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
Собственно вопрос в названии темы уже.
В 3Мб текста регулярка находит/не находит нужное совпадение примерно за 1мин 40сек.
Использую стандартный кубик зенки, но не думаю, что переписав его в "свой код" ситуация сильно изменится.
Думал, сперва определить диапазон, в котором находится нужный кусок кода для проверки, и там уже парсить, но это уже лишнее действие, отнимающее столько же времени.

Работаю не на "калькуляторе".
Какие есть варианты ускорить это дело?
В файле какого типа данные?
Вероятно, там исходный код страницы с метатегами, стилями и скриптами.
Попробуйте обработать эти данные перед поиском по регулярке с помощью этого C#-кода:
C#:
return Global.IE.Screening.StringMacrosScreening(project.Variables["temp"].Value);
Регуляркой парсить результат выполнения этого кода (в C# экшене пропишите вых. переменную).
 
  • Спасибо
Реакции: Alexmd

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