如果字符串格式为
,我可以用它来替换字符串 I' have a "car" that runs very well
所以基本上我有一个搜索功能
如果他们只是输入'
它就找不到了,所以我做了
mySearchWord.Replace("'", "''")
然后它找到了它,但现在如果同一个句子或单词中有'
和"
怎么办?我如何在mySearchWord中检查两者?
因为在这两种情况下我会做类似
的事情 mySearchWord.Replace("'", "''")
mySearchWord.Replace("\"", "\"") //have no idea about this one
或类似的东西,有没有办法一次完成?
我认为下面有人指出我正确的方向,我只需要能够将撇号或引号传递给我的搜索但是它抛出了一个错误的maube,因为当传递时,就像在sql中一样,你需要逃避引用或撇号
答案 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]
将匹配所有a
,b
和c
字符。
正则表达式起初看起来很复杂,但非常强大。
您在Regex
命名空间中找到了System.Text.RegularExpressions
类。
以下是它的文档:http://msdn.microsoft.com/en-us/library/c75he57e(v=VS.100).aspx
代码m => (m.Value == "'") ? "''" : "\"\""
是一个Lambda表达式,是委托MatchEvaluator
(docs)的简写。
答案 1 :(得分:2)
mySearchWord.Replace("''", "[{just_to_replace}]").Replace("'", "''").Replace("[{just_to_replace}]", "''");
很酷,不是吗。