Замена переменной проекта на C# с игнорированием регистра

donkasstro

Client
Регистрация
12.02.2020
Сообщения
50
Благодарностей
7
Баллы
8
Всем привет!
Прошу помощи в решении тривиальной задачи, решения которой не нашел

Суть в том, что нужно найти и заменить в кубике С# url сайта на шаблонный текст "название_сайта" БЕЗ учета регистра.
Моих знаний хватило чтобы составить такой вот не работающий кубик:

C#:
//ЗАМена переменной проекта "UrlDomen", на текст "название_сайта" не зависимо от регистра
string regex1 = project.Variables["Test"].Value;
string regex2;
string UrlDomen = project.Variables["UrlDomen"].Value;

regex2= System.Text.RegularExpressions.Regex.Replace(regex1, (?i)UrlDomen, "название_сайта");
ОШИБКА здесь: (?i)UrlDomen
Как написать регулярку без ошибок не знаю :dy:
Помогите пожалуйста, исправить. Спасибо!
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 611
Благодарностей
4 601
Баллы
113
Всем привет!
Прошу помощи в решении тривиальной задачи, решения которой не нашел

Суть в том, что нужно найти и заменить в кубике С# url сайта на шаблонный текст "название_сайта" БЕЗ учета регистра.
Моих знаний хватило чтобы составить такой вот не работающий кубик:

C#:
//ЗАМена переменной проекта "UrlDomen", на текст "название_сайта" не зависимо от регистра
string regex1 = project.Variables["Test"].Value;
string regex2;
string UrlDomen = project.Variables["UrlDomen"].Value;

regex2= System.Text.RegularExpressions.Regex.Replace(regex1, (?i)UrlDomen, "название_сайта");
ОШИБКА здесь: (?i)UrlDomen
Как написать регулярку без ошибок не знаю :dy:
Помогите пожалуйста, исправить. Спасибо!
regex2= System.Text.RegularExpressions.Regex.Replace(regex1, "(?i)"+UrlDomen, "название_сайта");
 
  • Спасибо
Реакции: donkasstro

artsmm

Client
Регистрация
03.10.2018
Сообщения
1 113
Благодарностей
196
Баллы
63
я бы так попробовал:
C#:
string regex1 = project.Variables["Test"].Value;
string UrlDomen = project.Variables["UrlDomen"].Value;
string pattern = Regex.Escape(UrlDomen);
string replacement = "название_сайта";
string result = Regex.Replace(regex1, pattern, replacement, RegexOptions.IgnoreCase);
Здесь pattern содержит экранированную строку UrlDomen, а replacement содержит текст, на который нужно заменить найденные совпадения.
Используя RegexOptions.IgnoreCase, мы говорим регулярному выражению не учитывать регистр символов при поиске совпадений.
В результате работы кода, в переменной result будет содержаться строка regex1, в которой все вхождения UrlDomen заменены на "название_сайта" без учета регистра
 
  • Спасибо
Реакции: donkasstro

donkasstro

Client
Регистрация
12.02.2020
Сообщения
50
Благодарностей
7
Баллы
8

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