取代“;“;在字符串

本文关键字:字符串 取代 | 更新日期: 2023-09-27 18:03:12

我有一个字符串:

var a = "some text '"";

我想用"代替'"

a.Replace("'"", '"'); => 最佳的重载方法匹配'string '。Replace(string, string)'有无效参数

a.Replace("'"", """); => 常量

最后我想获得"some text"

取代“;“;在字符串

你需要转义你的字符串,你正在寻找:

a.Replace("'''"", "'"");

应该可以了!

注意

请注意-只是调用replace创建一个新的字符串值,它不编辑原始字符串。如果你想使用这个字符串,你可以做内联替换或者你可以分配回原始值,像这样:

a = a.Replace("'''"", "'"");

这也可能是你遇到的另一个问题!

你似乎对c#的转义规则感到困惑。字面值"some text '""的值为some text "。如果你在VS调试器中查看这个字符串,它将显示产生值的c#文字:"some text '""。如果你打印它,你会看到它的值实际上是some text "

如果值实际上是some text '",它可以由"some text '''""@"some text '"""表示,那么您真正想要的是:

var b = a.Replace("'''"", "'"");

我怀疑你的字符串实际上已经是你想要的,虽然:some text "

您可以使用@引入的逐字字符串。在逐字字符串中,双引号通过双引号进行转义,反斜杠不再用作转义字符:

string result = a.Replace(@"'""", @""""); 

与普通字符串相比,您仍然需要转义双引号("),但不需要转义反斜杠(')。

当然你可以把两个解决方案结合起来:

string result = a.Replace(@"'""", "'""); 

参见:有哪些字符转义序列可用?

'''这将被视为c#中的转义字符,您需要使用双引号将其替换为。参见下面的代码片段

string afterreplace = txtBox1.Text.Replace("'''"", "'"");

你需要一些转义!使用:

a.Replace("'''"", "'"");