Долго выполняется регулярка

Aleksandr

Client
Регистрация
04.01.2014
Сообщения
206
Благодарностей
113
Баллы
43
Регулярка (?<=<table>[\w\W]*)(маша|саша)[\w\W]*?
текст который обрабатывает пример: <table>здесь текст всегда разный маша здесь текст всегда разный
В тестере регулярок выполняется быстро, а в PM и ZP долго - 4 секунды.
Делал с помощью C# еще дольше

Код:
string pattern = @"(?<=<table>[\w\W]*)(маша|саша)[\w\W]*?";
var regex = new System.Text.RegularExpressions.Regex(pattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase);
if (regex.IsMatch(project.Variables["variable1"].Value))
    return regex.Match(project.Variables["variable1"].Value);
else
    return "No";
Браузер не используется в шаблоне.
Помогите пожалуйста, а то до скончания веков будет текст обрабатывать :-)
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
Что тут советовать. Производительность регулярок отличается. Можно попробовать другую регулярку подобрать.
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 880
Баллы
113
Регулярка (?<=<table>[\w\W]*)(маша|саша)[\w\W]*?
текст который обрабатывает пример: <table>здесь текст всегда разный маша здесь текст всегда разный
В тестере регулярок выполняется быстро, а в PM и ZP долго - 4 секунды.
Делал с помощью C# еще дольше

Код:
string pattern = @"(?<=<table>[\w\W]*)(маша|саша)[\w\W]*?";
var regex = new System.Text.RegularExpressions.Regex(pattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase);
if (regex.IsMatch(project.Variables["variable1"].Value))
    return regex.Match(project.Variables["variable1"].Value);
else
    return "No";
Браузер не используется в шаблоне.
Помогите пожалуйста, а то до скончания веков будет текст обрабатывать :-)
Если в строке нету переносов, то можете попробовать так, должно быть легче. На сколько понял, Вам нужно получить имя?
(?<=<table>.*)(маша|саша)
 

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