Страницы

Поиск по вопросам

пятница, 3 января 2020 г.

Как найти в тексте слова с нечетным количеством букв и удалить из них среднюю букву?

#c_sharp #регулярные_выражения


Нужно на C# с помощью регулярных выражений в введенном тексте найти слова с нечетным
количеством букв, а потом удалить из них среднюю букву.
    


Ответы

Ответ 1



Возможно, это будет проще и понятнее: string input = "aaa bbbb ccccc dddddd"; string pattern = @"\w+"; string RemoveCentralSymbol(string s) => s.Remove(s.Length / 2, s.Length % 2); var result = Regex.Replace(input, pattern, match => RemoveCentralSymbol(match.Value)); Console.WriteLine(result); Используем перегрузку Regex.Replace, принимающую MatchEvaluator (делегат, который составит строку для замены)

Ответ 2



Удалить среднюю букву из слова с нечётной длиной: https://ideone.com/k1VQZW using System; using System.Text.RegularExpressions; public class Test { public static void Main() { var text = "123456789"; var res = Regex.Replace(text, @"^((?.)*).((?<-ch>.)*(?(ch)(?!))$)", @"$1$2"); Console.WriteLine(text); Console.WriteLine(res); } } Подробнее: https://stackoverflow.com/a/17004406/4928642.

Комментариев нет:

Отправить комментарий