Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Регексы, как узнать, была ли успешной замена?


Автор: Suppir 8.8.2011, 13:41
Есть строка 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) : "");
}


Как убрать лишнюю проверку регулярными выражениями? Т.е. сразу применить Regex.Replace, а в случае успеха применять Substring.ToUpper на следующее слово. 

Автор: Suppir 8.8.2011, 16:03
Второй вопрос:

Есть переменная key, которая составляется следующим образом:

Код

key = date + " " + match.Groups[3].Value.Replace(" ", "") + " " + match.Groups[1].Value + " " + match.Groups[4].Value;


Как сделать toLower() для составной переменной?

Вот так не работает:
Код

key = (date + " " + match.Groups[3].Value.Replace(" ", "") + " " + match.Groups[1].Value + " " + match.Groups[4].Value).toLower; 

Автор: VSB 15.8.2011, 15:37
Первое проще никак не сделать

А во втором забыт вызов функции

key = (date + " " + match.Groups[3].Value.Replace(" ", "") + " " + match.Groups[1].Value + " " + match.Groups[4].Value).ToLower(); 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)