You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何拆分字符串:将x作为分隔符、a保留为单个输出元素

解决方案

你可以直接用正则匹配实现需求,一行代码就能完成,不需要手动处理数组扩容,也不用自己写循环:

using System.Text.RegularExpressions;

// 单行实现
string[] result = Regex.Matches(input_string, @"a|[^ax]+")
                       .Cast<Match>()
                       .Select(m => m.Value)
                       .ToArray();

方案说明

  • 正则模式a|[^ax]+会匹配两类内容:单个字符a,或者连续的非a非x字符,刚好完全匹配你的拆分规则
  • 不需要手动处理x分隔符的逻辑,所有x会自动被过滤掉,不会出现在结果中
  • 底层由正则引擎实现内存分配,不需要你手动处理数组扩容的性能问题

关于补充的Split保留分隔符问题

原生string.Split没有提供保留指定分隔符的内置实现,但可以通过正则的Regex.Split配合环视规则实现类似效果,不过针对你的当前场景,直接用Regex.Matches是更简洁高效的方案。
如果确实需要处理MB级别以上的超大规模字符串、对性能有极致要求,可以预遍历一次字符串统计结果项数,再一次性分配数组填充,但常规场景下上述正则方案完全够用。


内容的提问来源于stack exchange,提问作者Dominique

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 00:12:01