如何在C#中使用正则表达式替换一个字符为反斜杠?

5
如果我这样做:
Regex.Replace("unlocktheinbox.com", "[t]", "\\$&");

我的结果是:

"unlock\\theinbox.com"

我期待着它能够……(需要上下文才能进行精确翻译)
"unlock\theinbox.com"

我试图使用正则表达式替换“t”为“\t”。我制作了这个很基础的例子来解释我想要完成的目标。

2
尝试使用以下代码:Regex.Replace("unlocktheinbox.com", "[t]", @"\"); - tchelidze
3
不,你提供的例子按预期工作。如果你的观察基于 Visual Studio 中的监视/本地窗口,它只显示 "unlock\\theinbox.com",\ 表示一个反斜杠,但在字符串中必须进行转义。如果你使用 Console.WriteLine 输出结果字符串,它会正确显示。 - Szabolcs Dézsi
3
你的输出结果是正确的,但是调试器显示它作为一个有效的C#字符串。例如尝试将其写入控制台,你就会看到。 - Lucas Trzesniewski
1
我之前在即时窗口测试了一下,但现在我可以在控制台窗口看到它是正确的。 - Henry
1个回答

3

请尝试以下操作:

var result = Regex.Replace("unlocktheinbox.com", "[t]", @"\");

请注意,如果您在调试过程中通过将鼠标悬停在“result”上观察“result”,它将显示为“unlock\\theinbox.com”,因为“\”已经被转义。但实际上,如果您打印“result”或在任何地方使用它,它将是“unlock\theinbox.com”。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接