取代“;“;在字符串
本文关键字:字符串 取代 | 更新日期: 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("'''"", "'"");