Как убрать лишнюю проверку 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) : "");
}
Как убрать лишнюю проверку IsMatch регулярными выражениями? Т.е. сразу применить Regex.Replace, а в случае успеха применять Substring.ToUpper на следующее слово.

Вопрос 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();
        }
    }
}

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


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

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

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