Как с помощью регулярных выражений заменить все повторения заданной подстроки на один символ - 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);
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д