2012-09-21 51 views
2

這是非常基本的問題,但我不確定它爲什麼不起作用。我在那裏「和」可以在任何的方式「與」寫代碼,「和」等,我想用來替換「」如何替換字符串中的單詞

我嘗試這樣做:

and.Replace("and".ToUpper(),","); 

但這不起作用,還有其他方式來做到這一點或使其工作?

+1

這相當於'and.Replace( 「AND」, 「」) '。無論如何,看看Regex.Replace和不區分大小寫模式。 – 2012-09-21 00:48:46

+1

正如@pst提到的,你也可以使用正則表達式:'var regex = new Regex(「camel」,RegexOptions.IgnoreCase); var newSentence = regex.Replace(sentence,「horse」); 'code take from:http://stackoverflow.com/questions/6025560/how-to-ignore-case-in-string-replace – Jack

+0

你也可以在搜索模式中使用「(?i)和」選項。這樣你可以使用靜態的'Replace()'方法,因爲你不需要使用'RegexOption.IgnoreCase'枚舉。我在下面給出了一些代碼。 –

回答

6

你應該看看正則表達式類

http://msdn.microsoft.com/en-us/library/xwewhkd1.aspx

using System.Text.RegularExpressions; 

Regex re = new Regex("\band\b", RegexOptions.IgnoreCase); 

string and = "This is my input string with and string in between."; 

re.Replace(and, ","); 
+0

很好的使用'\ b'(+1)。我更喜歡使用正則表達式的靜態方法,但主要只是偏好。 – 2012-09-21 02:48:03

2
words = words.Replace("AND", ",") 
      .Replace("and", ","); 

或者使用正則表達式。

+1

他其實並沒有提到,但我認爲你必須考慮'And','aNd'',ANd'輸入等。輸入字符串和搜索字符串甚至大小寫,並進行替換,或只使用正則表達式。 – Jack

+0

@Jack Yea只是一個例子。我的意思是他可以像我之前提到的那樣,繼續鏈接.Replace方法或RegEx。由於它只有有限數量的組合。替換並不是那麼糟糕。 – lahsrah

2

Replace方法返回替換爲可見的字符串。它確實不是修改原始字符串。你應該嘗試沿着

and = and.Replace("and",","); 

線的東西你可以爲所有變化做這個「」你可能會遇到的,或者作爲其他答案建議,你可以使用正則表達式。

+0

雖然這是事實,但這對「傑克和吉爾」無助。 – 2012-09-21 02:48:59

2

我猜你應該照顧,如果一些字包含and,說"this is sand and sea"。 「沙子」一詞不能被替換影響。

string and = "this is sand and sea"; 

//here you should probably add those delimiters that may occur near your "and" 
//this substitution is not universal and will omit smth like this " and, " 
string[] delimiters = new string[] { " " }; 

//it result in: "this is sand , sea" 
and = string.Join(" ", 
        and.Split(delimiters, 
          StringSplitOptions.RemoveEmptyEntries) 
        .Select(s => s.Length == 3 && s.ToUpper().Equals("AND") 
            ? "," 
            : s)); 

我還要補充水木清華這樣的:

and = and.Replace(" , ", ", "); 

所以,輸出:

this is sand, sea 
相關問題