使用字符串并替换

本文关键字:串并 替换 字符串 字符 | 更新日期: 2023-09-27 18:11:23

如果字符串的格式为以下,我可以用什么来替换它

   I' have a "car" that runs very well

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

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

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

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

因为对于这两种情况,我都会做一些类似的事情

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

或者类似的事情,有没有办法马上做?

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

使用字符串并替换

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

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

我应该解释一下。

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

正则表达式一开始看起来很复杂,但功能非常强大。

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

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

代码m => (m.Value == "'") ? "''" : "'"'""是Lambda表达式,它是Delegate MatchEvaluator(docs(的简写。

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

很酷,不是吗?