使用字符串并替换

时间:2011-10-13 18:36:04

标签: c# asp.net

如果字符串格式为

,我可以用它来替换字符串
   I' have a "car" that runs very well

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

如果他们只是输入'它就找不到了,所以我做了

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

然后它找到了它,但现在如果同一个句子或单词中有'"怎么办?我如何在mySearchWord中检查两者?

因为在这两种情况下我会做类似

的事情
    mySearchWord.Replace("'", "''") 

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

或类似的东西,有没有办法一次完成?

我认为下面有人指出我正确的方向,我只需要能够将撇号或引号传递给我的搜索但是它抛出了一个错误的maube,因为当传递时,就像在sql中一样,你需要逃避引用或撇号

2 个答案:

答案 0 :(得分:3)

这实际上同时取代了两个:

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

我应该解释一下。

这是使用名为正则表达式的方法。 pattern变量是正则表达式 pattern ,用于匹配字符串text中的内容。在这种情况下,模式表明它应该与文本中的所有'"字符匹配。模式[abc]将匹配所有abc字符。

正则表达式起初看起来很复杂,但非常强大。

您在Regex命名空间中找到了System.Text.RegularExpressions类。

以下是它的文档:http://msdn.microsoft.com/en-us/library/c75he57e(v=VS.100).aspx

代码m => (m.Value == "'") ? "''" : "\"\""是一个Lambda表达式,是委托MatchEvaluatordocs)的简写。

答案 1 :(得分:2)

mySearchWord.Replace("''", "[{just_to_replace}]").Replace("'", "''").Replace("[{just_to_replace}]", "''");
很酷,不是吗。