Как убрать лишнюю проверку 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();
}
}
}