Как с помощью регулярных выражений заменить все повторения заданной подстроки на один символ - C#
Формулировка задачи:
Разбираюсь с этой темой. Про метасимволы и т.д. уже почитала, но хочется прочесть о стандартных (канонических) задачах и решениях. Нигде не могу найти полноценный разбор этой темы. Везде 2-3 примерами ограничиваются.
Например, как с помощью регулярных выражений заменить все повторения подряд данной подстроки sub на ровно один символ c в строке s?
Например,
s = "ЛетоЛетоAхЛето!" sub = "Лето" c = " " Результат: "Ах!" (ну это после Trim - кстати, а можно регулярным выражением заменить Trim? )
Как поменять регистр всех букв на противоположный с помощью регулярных выражений?
Решение задачи: «Как с помощью регулярных выражений заменить все повторения заданной подстроки на один символ»
textual
Листинг программы
namespace Ghost { using System; using System.Linq; using System.Text.RegularExpressions; class Program { static string InverseCase(Match m) { if (m.Value.All(char.IsLower)) { return m.Value.ToUpper(); } if (m.Value.All(char.IsUpper)) { return m.Value.ToLower(); } return m.Value; } static void Main(string[] args) { string s = "ПлОхаЯ стрОКА"; string result = Regex.Replace(s, "\\w", new MatchEvaluator(InverseCase)); Console.WriteLine(result); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д