我想知道如何在 C# 中拆分字符串,但将分隔符保留在每个子字符串的开头。
例子:
输入: "1,2,3,4,5,6"
分隔符: ','
输出: {'1', ',2', ',3', ',4', ',5', ',6'}
目前我只知道使用 Regex.Split 从这个答案中将分隔符保留在每个子字符串的末尾。
String text = "1,2,3,4,5,6";
var split = Regex.Split(text, @"(?<=,)");
Run Code Online (Sandbox Code Playgroud)
您需要使用前瞻来进行拆分,而不是后视:
(?=,)
Run Code Online (Sandbox Code Playgroud)
当您在下一个位置有逗号时,您想要的是在一个位置上拆分,使其成为前瞻断言。另一方面,当我们在前一个位置有逗号时,lookbehind 断言将分裂,因此在逗号之后而不是在它之前分裂。
代码:
String text = "1,2,3,4,5,6";
var split = Regex.Split(text, @"(?=,)");
//=> ["1", ",2", ",3", ",4", ",5", ",6"]
Run Code Online (Sandbox Code Playgroud)