Передать функции значение из группы регулярки на C#

76
27 декабря 2021, 23:00

Помогите решить мою задачку, есть код:

string i_name  = dr["name"].ToString();
string descr   = dr["description"].ToString();
string pattern = @"<img src='([^<>]*?)\.([a-zA-Z]{3,4})'([^<>]*?>)";
string repl    = "<img src='" + Transliteration.Front($1) + ".$2' alt='" + i_name + "' $3>";
dr["description"] = Regex.Replace(descr, pattern, repl);

Мне нужно в Transliteration.Front передать значение из первой группы регулярки $1, но я не пому как. В таком виде ругается, что символ $ не предусмотрен. Если начинаю пробовать варианты с кавычками, вроде

string repl    = "<img src='" + Transliteration.Front(" + $1 + ") + ".$2' alt='" + i_name + "' $3>";

То он не подставляем значение, на выходе там получается просто 1.

Answer 1

В вашем коде Transliteration.Front(" + $1 + ") выполнится до начала работы Regex.

Используйте MatchEvaluator, если вы хотите обработать группу во время подстановки.

dr["description"] = Regex.Replace(descr, pattern,
    m => "<img src='" + Transliteration.Front(m.Groups[1].Value) + 
           $".{m.Groups[2].Value}' alt='{i_name}' {m.Groups[3].Value}>");
READ ALSO
Бот спамит ; Бот не может писать в беседу. VkNet, C#

Бот спамит ; Бот не может писать в беседу. VkNet, C#

У меня возникло несколько вопросов по созданию ВК бота на C# с помощью библиотеки VkNet

111
Unity | AudioSource.mute не работает

Unity | AudioSource.mute не работает

У меня есть функция (прикручена к нажатию кнопки), которая должна включать/отключать весь звук на сцене (ну и сохранять наличие/отсутствие...

309
Назначил кнопке обработчик событий, но ничего не происходит. WPF

Назначил кнопке обработчик событий, но ничего не происходит. WPF

Хочу сделать свою программу многостраничнойДля этого я назначил кнопке событие по переключению страниц

96
Сократить код обращения к одинаковым свойствам классов, когда они реализованы разными базовыми классами/интерфейсами?

Сократить код обращения к одинаковым свойствам классов, когда они реализованы разными базовыми классами/интерфейсами?

Пишу простой tweener на UnityДвижок предоставляет классы (компоненты) для рендера, и у тех, что я использую есть свойство color, но эти классы не наследуются...

201