在 C# 中将 (~) 替换为双引号 (")

问题描述 投票:0回答:2

我有一个数组中的字符串。我试图找到字符串中的所有

~
波浪号字符,并将它们替换为
"
双引号。这是一个转换,我必须将所有
"
替换为
~
才能使解析器正常工作。

这是我的代码:

for (int i = 0; i < columnCount; i++)
{
    row[i] = Regex.Replace(row[i], "~", "\"");        
}

该字符串表现为:

~~Generator~~

我正在寻找的结果是:

""Generator""

这行代码:

row[i] = Regex.Replace(row[i], "~", "\"");

返回以下结果:

"\"\"GENERATOR\"\""

我也尝试过这行代码:

row[i] = row[i].Replace("~", "\"");

这给了我结果:

"\"\"GENERATOR\"\""

我尝试查找其他答案,但没有一个真正适合我想要做的事情。

c# regex replace unicode-escapes
2个回答
2
投票

这是它在调试器中的显示方式(带有转义字符

\
): enter image description here

但是如果你打印这个字符,它会如你所期望的那样显示: enter image description here

顺便说一句,您可以将代码简化为:

columnCount = columnCount.Select(x => x.Replace("~", "\"")).ToArray();

0
投票

出现您遇到的问题是因为在 C# 中,反斜杠

\
是转义字符。这意味着当您在字符串中包含
\"
时,它表示文字双引号
"
字符。

string[] row = { "~~Generator~~" };
for(int i=0;i<row.Length; i++)
{
   row[i] = row[i].Replace("~", "\"");
}
Console.WriteLine(row[0]);
© www.soinside.com 2019 - 2024. All rights reserved.