2010-10-22 11 views
6

C# 'de düzenli ifadeyi kullanmadan bir dizgede duyarsız değiştirmenin yerini almanın bir yolu var mı? SenBüyük/küçük harf duyarlı değil C# ifadesinde normal ifadeyi kullanmadan mı?

string str = "Hello"; 
string replace = "hello"; 
string replaceWith = "hello world"; 
int i = str.IndexOf(replace, StringComparison.OrdinalIgnoreCase); 
int len = replace.Length; 
str = str.Replace(str.Substring(i, len), replaceWith); 

gibi bir şey deneyebilirsiniz bu

string x = "Hello"; 

x = x.Replace("hello", "hello world"); 
+1

Bize ne demek istediğin hakkında bir örnek verebilir misin? – Ani

+0

Bu konuyla ilgili iyi bir çözüm @ c-dragon-76 tarafından bulunabilir http://stackoverflow.com/questions/244531/is-there-an-alternative-to-string-replace-that-is-case-insensitive – Jaider

cevap

6

gibi

şey Aşağıdaki bağlantılar yardımcı olabilir String.IndexOf Method (String, StringComparison)

+0

'Değiştir' dizgisini değiştirebileceğinden şüphe duyuyorum. Davayı görmezden gelerek farklı bir konu var. Test edilmiş bir örnek mi? – Nayan

+0

Evet, bunu test ettim. Sadece arama dizgisine göre başlangıç ​​dizini aldığımı, ancak orijinal dizeden gelen alt dizgiyi kullanarak değiştirdiğimi unutmayın, böylece eşleşecektir. –

+0

, başka durumlarda beklediğimiz gibi çalışmıyor ... str = "Hello-Hello" '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'merhaba dünya-merhaba''''''''ya dönecektir, ancak' 'merhaba dünya-merhaba'''' dönecektir. yeniden tasarlanması gerekiyor. – Jaider

İlgili konular