Как преобразовать слово в регулярное выражение?

Deadman

Client
Регистрация
24.09.2011
Сообщения
75
Благодарностей
3
Баллы
8
Здравствуйте. Пытаюсь выпарсить из списка1 (записи выглядят так: кейворд;папка/файл_1.txt) значения содержащиеся в списке2 (кейворд). Использую взятое из списка2 {-Variable.кейворд-}, использую regex {-Variable.кейворд-};папка/файл.*txt, для точного вхождения. Всё парсит нормально, пока не появляется что-то типо:

кей (ворд#2)
кейворд (1)
кейворд#4
ну и всякие вариации разных доп символов, чистить их не вариант

Есть ли какой-нибудь макрос, который преобразовывал бы кеворд полученный из переменной в регулярку? типо такого кей\ \(ворд\#2\).*

Вообще первоначальная задача была удалить дубли, но после ; везде разные значения файла и я ничего не придумал лучше...
 

qzen4i

Client
Регистрация
01.05.2014
Сообщения
1 408
Благодарностей
314
Баллы
83
Здравствуйте. Пытаюсь выпарсить из списка1 (записи выглядят так: кейворд;папка/файл_1.txt) значения содержащиеся в списке2 (кейворд). Использую взятое из списка2 {-Variable.кейворд-}, использую regex {-Variable.кейворд-};папка/файл.*txt, для точного вхождения. Всё парсит нормально, пока не появляется что-то типо:

кей (ворд#2)
кейворд (1)
кейворд#4
ну и всякие вариации разных доп символов, чистить их не вариант

Есть ли какой-нибудь макрос, который преобразовывал бы кеворд полученный из переменной в регулярку? типо такого кей\ \(ворд\#2\).*

Вообще первоначальная задача была удалить дубли, но после ; везде разные значения файла и я ничего не придумал лучше...
если у тебя ; разделить то создай просто таблицу бери строку с удалением и записывай в переменные.
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 375
Благодарностей
2 040
Баллы
113
если у тебя ; разделить то создай просто таблицу бери строку с удалением и записывай в переменные.
таблица работает медленее если её заполнить, почему так же не взять из списка и просто через сплит разделить, а там строка через такой разделитель хоть пусть бесконечная будет
 
  • Спасибо
Реакции: qzen4i

qzen4i

Client
Регистрация
01.05.2014
Сообщения
1 408
Благодарностей
314
Баллы
83
таблица работает медленее если её заполнить, почему так же не взять из списка и просто через сплит разделить, а там строка через такой разделитель хоть пусть бесконечная будет
Ну или так.
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 375
Благодарностей
2 040
Баллы
113
просто если потом в таблицу возращать и делать проверку то полюбому придётся ставить задержку, а сколько работаю со списками ни разу ещё паузу не ставил и без раз разницы сколько список весит

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

surrealmix

Client
Регистрация
07.03.2013
Сообщения
715
Благодарностей
409
Баллы
63
Код:
var toRegx = project.Variables["ПерееннаяИзКоторойНадоСделатьРегулярку"].Value;
project.Variables["ПеременнаяВКоторуюЛожимРегулярку"].Value = Regex.Escape(toRegx);
//Не возвращать значение
 
Последнее редактирование:

Deadman

Client
Регистрация
24.09.2011
Сообщения
75
Благодарностей
3
Баллы
8
Код:
var toRegx = project.Variables["ПерееннаяИзКоторойНадоСделатьРегулярку"].Value;
project.Variables["ПеременнаяВКоторуюЛожимРегулярку"] = Regex.Escape(toRegx);
//Не возвращать значение
ругается на код
Ошибка в действии "CS0200" "Property or indexer 'ZennoLab.InterfacesLibrary.ProjectModel.Collections.ILocalVariables.this[string]' cannot be assigned to -- it is read only". [Строка: 1; Cтолбец: 1]
Ошибка в действии "CS0029" "Cannot implicitly convert type 'string' to 'ZennoLab.InterfacesLibrary.ProjectModel.ILocalVariable'". [Строка: 1; Cтолбец: 28]
может я не так что вписал...
 

Deadman

Client
Регистрация
24.09.2011
Сообщения
75
Благодарностей
3
Баллы
8
если у тебя ; разделить то создай просто таблицу бери строку с удалением и записывай в переменные.
я тут прочекал, там в кейвордах есть ; нужно точное совпадение найти, поэтому и прибегнул к парсингу регуляркой
 

qzen4i

Client
Регистрация
01.05.2014
Сообщения
1 408
Благодарностей
314
Баллы
83
я тут прочекал, там в кейвордах есть ; нужно точное совпадение найти, поэтому и прибегнул к парсингу регуляркой
делай любой другой символ. как разделитель.
 

surrealmix

Client
Регистрация
07.03.2013
Сообщения
715
Благодарностей
409
Баллы
63
ругается на код
Ошибка в действии "CS0200" "Property or indexer 'ZennoLab.InterfacesLibrary.ProjectModel.Collections.ILocalVariables.this[string]' cannot be assigned to -- it is read only". [Строка: 1; Cтолбец: 1]
Ошибка в действии "CS0029" "Cannot implicitly convert type 'string' to 'ZennoLab.InterfacesLibrary.ProjectModel.ILocalVariable'". [Строка: 1; Cтолбец: 28]
может я не так что вписал...
Поправил
 

Deadman

Client
Регистрация
24.09.2011
Сообщения
75
Благодарностей
3
Баллы
8
В общем решил я вопрос, вы меня на мысль навели, совсем ни разу не пользовался функцией Escape, которая ка раз делает то, что хотел.
 

surrealmix

Client
Регистрация
07.03.2013
Сообщения
715
Благодарностей
409
Баллы
63
Если помог - ставь лайк ))
 

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