如何拆分字符串但在开头保留分隔符

0 c# regex string split

我想知道如何在 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)

anu*_*ava 5

您需要使用前瞻来进行拆分,而不是后视:

(?=,)
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)