使用字符串并替换
本文关键字:串并 替换 字符串 字符 | 更新日期: 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]
将匹配所有a
、b
和c
字符。
正则表达式一开始看起来很复杂,但功能非常强大。
您可以在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}]", "''");
很酷,不是吗?