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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.857 из 5
Похожие ответы