"\v"
是两个字符,而不是一个,在原始的字符串(这是不计算\
作为转义字符作为文字C#字符串一样)。
你需要在字面"\v"
分裂,这意味着你需要指定拆分的,需要一个字符串超载:
string[] split = narrative.Split(new string[] {"\\v"}, StringSplitOptions.None);
注意我是如何与逃脱“\”字符“\\”
您的是单个控制字符,不是两个字符。
我认为你的问题本身有些误导......
你的榜样字符串,如果进入到C#将实际工作像你所期望的,因为在一个verbatum C#字符串\v
将被换到一个特殊字符:
string test = " The objective for test.\vVision\v* Deliver a test goals\v** Comprehensive\v** Control\v* Alignment with cross-Equities strategy\vApproach\v*An acceleration ";
char[] delimiters = new char[] { '\v' };
Console.WriteLine(test.Split(delimiters).Length); // Prints 8
不过,我觉得你的实际字符串确实有反斜杠-v在它,而不是逃脱符\ v:
string test = " The objective for test.\\vVision\\v* Deliver a test goals\\v** Comprehensive\\v** Control\\v* Alignment with cross-Equities strategy\\vApproach\\v*An acceleration ";
char[] delimiters = new char[] { '\v' };
Console.WriteLine(test.Split(delimiters).Length); // Prints 1, like you say you see.
因此,你可以解决它通过使用一个字符串数组来分割字符串上述:
string test = " The objective for test.\\vVision\\v* Deliver a test goals\\v** Comprehensive\\v** Control\\v* Alignment with cross-Equities strategy\\vApproach\\v*An acceleration ";
string[] delimiters = new [] { "\\v" };
Console.WriteLine(test.Split(delimiters, StringSplitOptions.None).Length); // Prints 8
看起来你并不是逃避反斜杠。 –
我运行你的代码和Length == 8. –