有没有办法拆分字符串但保留拆分的字符,如果这样做:
"A+B+C+D+E+F+G+H".Split(new char[] { '+' });
你得到
A
B
C
D
E
F
G
H
有没有办法使用 split 来保留拆分字符:
A
+B
+C
+D
+E
+F
+G
+H
或者如果你在 A
前面有 +
那么
+A
+B
+C
+D
+E
+F
+G
+H
最佳答案
您可以将 Regex.Split
与不使用分隔符的模式一起使用:
var pattern = @"(?=\+)";
var ans = Regex.Split(src, pattern);
如果有前导 +
,这将创建一个空条目,因为在 +
之前有一个隐含的拆分。
您可以使用 LINQ 删除不需要的空条目:
var ans2 = Regex.Split(src, pattern).Where(s => !String.IsNullOrEmpty(s)).ToArray();
或者,您可以使用 Regex.Matches
来提取完整的匹配模式:
var ans3 = Regex.Matches(src, @"\+[^+]*").Cast<Match>().Select(m => m.Value).ToArray();
关于c# - 你能拆分一个字符串并保留拆分的字符吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49141109/