Как убрать лишнюю проверку IsMatch регулярными выражениями? - C#
Формулировка задачи:
Вопрос 1
Есть строка line. Необходимо в случае, если в начале строки стоят слова "Постановление" или "Распоряжение", удалить это слово с пробелом, а в последующем слове сделать первую букву заглавной. Пишу:if (Regex.IsMatch(line, "^(Постановление|Распоряжение)\\s{1,}", RegexOptions.IgnoreCase)) { line = Regex.Replace(line, "^(Постановление|Распоряжение)\\s{1,}", "", RegexOptions.IgnoreCase); line = line.Substring(0, 1).ToUpper() + (line.Length > 1 ? line.Substring(1) : ""); }
Вопрос 2
Есть переменная key, которая составляется следующим образом:key = date + " " + match.Groups[3].Value.Replace(" ", "") + " " + match.Groups[1].Value + " " + match.Groups[4].Value; key = key.ToLower;
Решение задачи: «Как убрать лишнюю проверку IsMatch регулярными выражениями?»
textual
Листинг программы
using System; using System.Text.RegularExpressions; namespace ConsoleApplicationTest { public static class Program { private static void Main() { var lines = new[] { "Постановление постановление01", "Распоряжение распоряжение01", "Распоряжение02" }; foreach ( string line in lines ) { string result = Regex.Replace( line, @"^(Постановление|Распоряжение)\s(?<str>.+)", match => { string str = match.Groups[ "str" ].Value; return str.Substring( 0, 1 ).ToUpper() + str.Remove( 0, 1 ); } ); Console.WriteLine( result ); } Console.ReadKey(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д