Переменная в регулярке и экранирование

Cronis

Новичок
Регистрация
20.01.2017
Сообщения
13
Благодарностей
0
Баллы
1
Помогите решить проблему. В поиске не нашел.
Использую в регулярке переменную:
Действия - Обработка текста - Regex - (?<={-Variable.uname-}[\s]+?) и т.д

ПМ переменную просто заменяет на текст внутри неё и если переменная содержит метасимвол (ну например скобочку) - регулярка перестает работать.

Вообще, по моей логике, переменная не должна содержать регулярок, а восприниматься регуляркой, в которую она вставлена - как текст. Т.е. метасимволы должны экранироваться. Но вопрос это философский и сейчас это не так.

Вопрос в том, как решить проблему? Пытался решить через кубик С#, но нет достаточно опыта. Следующая конструкция у меня не работает, как ожидается (по опыту в РНР), а возвращает "\$1" вместо найденного совпадения.

string Test = project.Variables["uname"].Value;
string regexTest = System.Text.RegularExpressions.Regex.Replace(Test, @"\W", "\\\\$1");
return regexTest;

Как правильно это будет выглядеть на С# и какие еще варианты?
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 685
Благодарностей
4 640
Баллы
113
метасимволы сначала нужно экранировать. Обработка текста--Escape строки или как-то так.
В с# это Regex.Escape
 

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