如何按多个分隔符将文本分割为List集合?
多分隔符分割字符串的C#实现
问题描述
我有如下字符串:
string text = "Ivan - George ; Josh , Mike John";
需要按-、;、 (空格)这些分隔符对文本进行分割。之前只会用单个分隔符的分割写法:
List<string> names = text.Split(" - ").ToList();
现在不知道如何实现多分隔符分割。
解决方案
C#的string.Split提供了支持多分隔符的重载,直接传入分隔符数组即可,还能按需过滤空结果:
1. 基础多分隔符分割
直接传入包含所有目标分隔符的字符串数组:
string[] separators = { " - ", " ; ", " " }; List<string> names = text.Split(separators, StringSplitOptions.None).ToList();
⚠️ 注意:如果原字符串存在连续分隔符(比如多个空格),这种写法会产生空字符串元素。
2. 过滤空结果的分割
如果不需要空字符串,添加StringSplitOptions.RemoveEmptyEntries参数即可:
string[] separators = { " - ", " ; ", " " }; List<string> names = text.Split(separators, StringSplitOptions.RemoveEmptyEntries).ToList();
执行后得到的names列表内容为:["Ivan", "George", "Josh", "Mike", "John"],完全符合需求。
额外提示
- 分隔符的传入顺序不影响分割逻辑,
Split会匹配所有传入的分隔符。 - 本次场景中的分隔符都是普通字符串,无需使用正则表达式版本的
Split,用字符串数组重载更高效。
内容的提问来源于stack exchange,提问作者Nikolaos Citiridis
相关产品推荐
相关产品推荐

