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


Автор: KuMa1104 6.12.2009, 23:48
Вопрос такой

есть строка вней стречаються слова неизвестно сколько и какие.
Код

string str = " this thisASTRA  BBthisDF "

нужно заменить в ней элемент на заданный. Заменить слово "this" на "Oth" но только "this" а не "thisASTRA" и тд. Как это сделать??

Метод
Код

reg.Replace("this","Oth");

приводит к тому что заменяються все вхождения слова this т.е.

получиться
Код

Oth OthASTRA  BBOthDF 


Можно этого избежать?

Автор: Экскалупатор 7.12.2009, 00:41
http://msdn.microsoft.com/ru-ru/library/system.text.regularexpressions.regex.replace.aspx


Добавлено @ 00:49
Код

string str = " this thisASTRA  BBthisDF this thisASTRA  BBthisDF";
            string str2 = Regex.Replace(str, @"\bthis\b", @"Out");


заменяет только одиночные "this". остальное не трогает.

Автор: KuMa1104 7.12.2009, 02:14
Спасибо!
Очень помогло.++

Автор: gwi52 13.12.2009, 12:50
Что такое Regex?
У меня в C# 2008 Express Edition этого нет.
Поэтому в таких случаях я обхожусь простым рабоче-крестьянским
reg.Replace(" this "," Oth ");
включаю пробелы в исходный и результативный образцы.
Но Regex безусловно лучше.

Автор: Экскалупатор 13.12.2009, 13:49
http://msdn.microsoft.com/ru-ru/library/system.text.regularexpressions.regex.aspx

Автор: gwi52 13.12.2009, 15:20
Thank your!

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