2011-10-13 44 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