Обработка большого количества Регулярок в переменные?

Zubrjonok

Client
Регистрация
25.12.2012
Сообщения
106
Благодарностей
15
Баллы
18
Привет товарищи. Как-то можно реализовать массовое добавление регулярок в переменные? Например есть список из 50 регулярных выражений, засовывать их в кубик и потом в перемную ооочень геморно(50 кубиков создавать) Как это можно ускорить?
 

Valandersi

Client
Регистрация
19.01.2015
Сообщения
1 873
Благодарностей
1 120
Баллы
113
Зачем 50 кубиков создавать? взяли с удалением воспользовались, положили в конец списка
 
  • Спасибо
Реакции: Zubrjonok

Zubrjonok

Client
Регистрация
25.12.2012
Сообщения
106
Благодарностей
15
Баллы
18
Зачем 50 кубиков создавать? взяли с удалением воспользовались, положили в конец списка
Мне в таблицу потом ложить.
Может через C# можно как-то список вложить в переменный а потом одним кубиком и одним обращением к таблице вложить?
 

Zubrjonok

Client
Регистрация
25.12.2012
Сообщения
106
Благодарностей
15
Баллы
18
Нашёл вроде

C#:
//выдергиваем первое значение

string regex = "(?<=id\":).*(?=,\"name)"; // в кавычках заключаем регулярное выражение

string text =  project.Variables["Имя_переменной_с_исходным_текстом"].Value;

var reg = new System.Text.RegularExpressions.Regex(regex,  System.Text.RegularExpressions.RegexOptions.None);

//сохраняем результат в нужную переменную, не дожидаясь перитонита

project.Variables["Имя_переменной_в_которую_сохраняем_результат"].Value = reg.Matches(text)[0].ToString();



//выдергиваем второе значение

regex = "(?<=id\":).*(?=,\"name)"; // в кавычках заключаем регулярное выражение

text =  project.Variables["Имя_переменной_с_исходным_текстом"].Value;

reg = new System.Text.RegularExpressions.Regex(regex,  System.Text.RegularExpressions.RegexOptions.None);

//сохраняем результат в нужную переменную, не дожидаясь перитонита

project.Variables["Имя_переменной_в_которую_сохраняем_результат_2"].Value = reg.Matches(text)[0].ToString();



//выдергиваем третье значение

regex = "(?<=id\":).*(?=,\"name)"; // в кавычках заключаем регулярное выражение

text =  project.Variables["Имя_переменной_с_исходным_текстом"].Value;

reg = new System.Text.RegularExpressions.Regex(regex,  System.Text.RegularExpressions.RegexOptions.None);

//сохраняем результат в нужную переменную, не дожидаясь перитонита

project.Variables["Имя_переменной_в_которую_сохраняем_результат_3"].Value = reg.Matches(text)[0].ToString();



//завершаем работу

return reg.Matches(text)[0]; //эта строчка должна быть одна на весь код
 

Zubrjonok

Client
Регистрация
25.12.2012
Сообщения
106
Благодарностей
15
Баллы
18
Ошибку в действии "CS1009" выдаёт (((
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 694
Баллы
113
Ошибку в действии "CS1009" выдаёт (((
конечно выдает. запись регулярки надо экранировать , когда есть совпадающие управляющие символы
так вот попробуйте string regex = @"(?<=id\"":-).*(?=,\""name)";
 

Zubrjonok

Client
Регистрация
25.12.2012
Сообщения
106
Благодарностей
15
Баллы
18
конечно выдает. запись регулярки надо экранировать , когда есть совпадающие управляющие символы
так вот попробуйте string regex = @"(?<=id\"":-).*(?=,\""name)";
Вот выыдаёт, там старая ошибка и новая
 

Вложения

Zubrjonok

Client
Регистрация
25.12.2012
Сообщения
106
Благодарностей
15
Баллы
18
C#:
//выдергиваем первое значение
string regex = @"(?<=id\"":-).*(?=,\""name)";
string text =  project.Variables["Specific"].Value;
var reg = new System.Text.RegularExpressions.Regex(regex,  System.Text.RegularExpressions.RegexOptions.None);
//сохраняем результат в нужную переменную, не дожидаясь перитонита
project.Variables["hz"].Value = reg.Matches(text)[0].ToString();

//завершаем работу
return reg.Matches(text)[0]; //эта строчка должна быть одна на весь код
 

Zubrjonok

Client
Регистрация
25.12.2012
Сообщения
106
Благодарностей
15
Баллы
18
конечно выдает. запись регулярки надо экранировать , когда есть совпадающие управляющие символы
так вот попробуйте string regex = @"(?<=id\"":-).*(?=,\""name)";
Добавил простую регулярку, то работает..!!!
 

Zubrjonok

Client
Регистрация
25.12.2012
Сообщения
106
Благодарностей
15
Баллы
18
string regex = @"РЕГУЛЯРКА";

Можно ли как-то вставить регулярку из пременной шаблона?
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 694
Баллы
113
  • Спасибо
Реакции: FAQBILL и Zubrjonok

Zubrjonok

Client
Регистрация
25.12.2012
Сообщения
106
Благодарностей
15
Баллы
18

Zubrjonok

Client
Регистрация
25.12.2012
Сообщения
106
Благодарностей
15
Баллы
18
string regex = project.Variables["имя переменной"].Value;
Очень сильно извиняюсь, маленький вопросик ещё...
Можно ли в строку куда записывается, добавить название переменной из двух переменных?
project.Variables["hz_ПЕРЕМЕННАЯ_СЧЁТЧИКА"].Value = reg.Matches(text)[0].ToString();
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 694
Баллы
113
Очень сильно извиняюсь, маленький вопросик ещё...
Можно ли в строку куда записывается, добавить название переменной из двух переменных?
project.Variables["hz_ПЕРЕМЕННАЯ_СЧЁТЧИКА"].Value = reg.Matches(text)[0].ToString();
не понял вопроса.
возможно вы имели ввиду адресацию переменной через имя хранимое в другой переменной ? тогда это будет так выглядеть
project.Variables[project.Variables["hz_ПЕРЕМЕННАЯ_СЧЁТЧИКА"].Value].Value = reg.Matches(text)[0].ToString();
 
  • Спасибо
Реакции: Zubrjonok

Zubrjonok

Client
Регистрация
25.12.2012
Сообщения
106
Благодарностей
15
Баллы
18
не понял вопроса.
возможно вы имели ввиду адресацию переменной через имя хранимое в другой переменной ? тогда это будет так выглядеть
project.Variables[project.Variables["hz_ПЕРЕМЕННАЯ_СЧЁТЧИКА"].Value].Value = reg.Matches(text)[0].ToString();
Работает, но заметил при вставке регулярки с скобками, то ошибка. Поискал в сети, не нашёл как её заэкранировать... Можете ещё немножко подсказать?
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 694
Баллы
113
Работает, но заметил при вставке регулярки с скобками, то ошибка. Поискал в сети, не нашёл как её заэкранировать... Можете ещё немножко подсказать?
пример нужен
 

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