Czy istnieje sposób, aby zastąpić niewrażliwe na wielkość ciągu znaków bez użycia wyrażenia regularnego w C#?Case niewrażliwe zastąpić bez użycia wyrażenia regularnego w C#?
coś takiego
string x = "Hello";
x = x.Replace("hello", "hello world");
Czy istnieje sposób, aby zastąpić niewrażliwe na wielkość ciągu znaków bez użycia wyrażenia regularnego w C#?Case niewrażliwe zastąpić bez użycia wyrażenia regularnego w C#?
coś takiego
string x = "Hello";
x = x.Replace("hello", "hello world");
Można spróbować czegoś jak
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);
Wystarczy popatrzeć na String.IndexOf Method (String, StringComparison)
Wątpię, aby 'Replace' mógł zastąpić ciąg znaków. Inną sprawą jest to, że masz indeks ignorując sprawę. Czy to jest sprawdzony przykład? – Nayan
Tak, przetestowałem to. Pamiętaj tylko, że pobieram indeks początkowy na podstawie szukanego ciągu, ale zastępuję go na podstawie ciągu podrzędnego z oryginalnego ciągu znaków, aby był zgodny. –
nie działa tak, jak można by oczekiwać w innych sytuacjach ... np. jeśli 'str =" Hello-Hello "' to zwróci '" hello world-hello world "' ale to 'str =" Hello-hello "' to zwróci '" hello world-hello "' ... to częściowe rozwiązanie trzeba przeprojektować. – Jaider
Poniższe linki mogą być pomocne.
Is there an alternative to string.Replace that is case-insensitive?
http://www.codeproject.com/KB/string/fastestcscaseinsstringrep.aspx
http://www.west-wind.com/weblog/posts/60355.aspx
Istnieje również funkcja w zespole Microsoft.VisualBasic
Strings.Replace.
Czy możesz podać nam przykład tego, co masz na myśli? – Ani
Dobre rozwiązanie można znaleźć w tym temacie: @ c-dragon-76 http://stackoverflow.com/questions/244531/is-there-an-alternative-to-string-replace-that-is-case-insensitive – Jaider