我有一个字符串
var string = "I have a a string \\nThis is a new line\\nThis is another";
Run Code Online (Sandbox Code Playgroud)
我想要的是什么
var string = "I have a a string \nThis is a new line\nThis is another";
Run Code Online (Sandbox Code Playgroud)
我用过
string.Replace("\\","\");
Newline in constant
Run Code Online (Sandbox Code Playgroud)
但得到错误消息"Newline in constant"
Wik*_*żew 13
常量错误中的换行符是由"\"C#中的无效字符串文字引起的.你必须有意思"\\"(表示一个文字\符号).
这"\\n"是一个包含1个文字\符号的字符串,后跟一个文字n字母.你需要得到"\n"一个换行符.这里没有\,它是一个逃脱序列.因此,替换\\用\,原则上不在这里工作.
如果你只想用换行替换所有\后跟n,你可以使用.Replace(@"\n", "\n"),其中@"\n"是一个查找文字+ 的逐字字符串文字,并替换为表示换行(LF)符号的转义序列.\n\n
此外,您可能希望使用将所有转义实体转换为其文字表示形式:Regex.Unescape
var s = "I have a a string \\nThis is a new line\\nThis is another";
Console.Write(Regex.Unescape(s));
Run Code Online (Sandbox Code Playgroud)
C#演示的结果:
I have a a string
This is a new line
This is another
Run Code Online (Sandbox Code Playgroud)
juh*_*arr 13
你真正想要替换的是反斜杠,后跟字母n和换行符
string.Replace("\\n","\n");
Run Code Online (Sandbox Code Playgroud)
原因Replace("\\","\")是编译错误是因为反斜杠正在转义双引号,所以字符串继续到行的末尾,这是不允许的,除非它是一个逐字字符串(以@开头).
| 归档时间: |
|
| 查看次数: |
6652 次 |
| 最近记录: |