"\v"
is two characters, not one, in your original string (which is not counting the \
as an escape character as a literal C# string does).
You need to be splitting on literal "\v"
which means you need to specify the overload of Split that takes a string:
string[] split = narrative.Split(new string[] {"\\v"}, StringSplitOptions.None);
Note how I had to escape the "\" character with "\\"
Your '\v'
is a single control character, not two characters.
I think your question itself is slightly misleading...
Your example string, if entered into C# will actually work like you expected, because a \v
in a verbatum C# string will be escaped to a special character:
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
However, I think your actual string really does have backslash-v in it rather than escaped \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.
So you can fix it as described above by using an array of strings to split the string:
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