2011-10-13 46 views
0

我有什麼可以用來替換字符串,如果它的格式如下處理字符串和替換

I' have a "car" that runs very well 

所以基本上我有一個搜索功能

,如果他們只需鍵入'它不是找到它所以我也

mySearchWord.Replace("'", "''") 

,然後發現它,但現在如果有什麼的',並在同一個句子或單詞,豪"我可以在mySearchWord中檢查這兩種情況嗎?

,因爲這兩種情況下,我會做類似

mySearchWord.Replace("'", "''") 

mySearchWord.Replace("\"", "\"") //have no idea about this one 

或類似的東西,有沒有辦法做到這一點,在一次?

我覺得下面的人指着我在正確的方向,我只需要能夠傳遞撇號或引號到我的搜索,但它是拋出一個錯誤maube,因爲當通過,就像在sql中,你會需要以逃避報價或撇號

+1

不知道我關注,所以你想要'=>''(兩個單一的蜱),但你想要「=>」?後者有什麼意義?還是我誤讀? –

+2

你能澄清一下嗎 - 我已經閱讀了3次,我不確定你的目標。 –

+0

也許如果您向我們展示了您想要的示例字面響應字符串是什麼樣子? –

回答

3

這實際上就取代了:

string text = "I' have a \"car\" that runs very well"; 
string pattern = "['\"]"; 
var result = Regex.Replace(text, pattern, m => (m.Value == "'") ? "''" : "\"\""); 

我應該解釋。

這是使用稱爲正則表達式的方法。 pattern變量是正則表達式模式它用於匹配字符串text中的內容。在這種情況下,模式表明它應該匹配文本中的所有'"字符。模式[abc]將匹配所有a,bc個字符。

正則表達式起初看起來很複雜,但功能非常強大。

您可以在System.Text.RegularExpressions命名空間中找到Regex類。

這裏是它的文檔:http://msdn.microsoft.com/en-us/library/c75he57e(v=VS.100).aspx

代碼m => (m.Value == "'") ? "''" : "\"\""是λ表達,這是短手委派MatchEvaluatordocs)。

+0

非常感謝你 – user710502

2
mySearchWord.Replace("''", "[{just_to_replace}]").Replace("'", "''").Replace("[{just_to_replace}]", "''"); 

很酷,不是嗎。

+0

+1比我快,但我想說你不是在做一次;)只是在一行... – gbianchi

+1

可悲'字符串是不可改變的!:-)'mySearchWord = ...' – xanatos