#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.
Комментариев нет:
Отправить комментарий