Пытаюсь ответить себе здесь на академическое упражнение.
Есть ли метод с использованием регулярных выражений (синтаксис .net, см. Предостережение ниже), с помощью которого я могу преобразовать полностью определенное имя сервера в комбинированную строку верхнего и нижнего регистра (имя сервера - в регистре ВЕРХНИЙ, доменное имя (имена) в случае ниже) .
например
Я играл с RE и пока использовал ([A-Za-z0-9-]+)\.(.+) в качестве шаблона, но я изо всех сил пытаюсь сделать это с помощью простого однострочника.
Мои первоначальные тесты заставили меня поиграть с Matches и получить возвращенный список, но мне это кажется неприятным, потому что мне нужно проверить количество совпадений, выполнить кастинг, операции ToUpper() \ ToLower() и т. д. И, да, ну ...
Предостережение: Если бы я не использовал .NET, я бы мог сделать что-нибудь простое, например, использовать \U${1}.\L${2} в качестве строки замены, но похоже, что .NET не поддерживает этот синтаксис.
Я буду честен и скажу "не знаю". Как я уже сказал, используя синтаксис регулярных выражений, отличных от .Net, кажется, что я смогу просто использовать шаблон подстановки, который я дал в моем вопросе, и тогда я готов. Я совершенно не понимаю, как это сделать в .Net.





Используя ссылку «Возможный дубликат», я получил вот что:
Regex re = new Regex(@"([A-Za-z0-9-]+)\.(.+)");
foreach (var i in _knownServers)
clean.Add(re.Replace(i, m => $"{m.Groups[1].ToString().ToUpper()}.{m.Groups[2].ToString().ToLower()}"));
Итак, ваша основная проблема - узнать как использовать обратный вызов?