在 C# 中拆分字符串 [关闭]

Posted

技术标签:

【中文标题】在 C# 中拆分字符串 [关闭]【英文标题】:Split a string in C# [closed] 【发布时间】:2016-05-21 03:25:25 【问题描述】:

我有一个包含文本“AA55BB10CC1DD10E123”的字符串。我必须拆分字符串并将其作为文本/值字段放在 List 中,例如

AA | 55

BB | 10

抄送 | 1

DD | 10

E | 123

谢谢

【问题讨论】:

您的拆分标准是什么?任意数量的字母后跟任意数量的数字? 你试过什么? 欢迎来到 ***!我们不是代码编写服务。虽然我们很乐意为您的具体问题提供帮助,但请向我们展示您目前所写的内容以及您遇到的具体问题。阅读How do I ask a good question?了解更多详情。 @DStanley,好像从第一个字母到字母前的最后一个数字,如果你理解我的话 【参考方案1】:
string text = "AA55BB10CC1DD10E123";
var letters = Regex.Split(text,@"\d").Where( t => !string.IsNullOrEmpty(t));
var digits = Regex.Split(text, @"[A-Z]").Where(t => !string.IsNullOrEmpty(t));
var myList = letters.Zip(digits, (l, d) => new l,d);

【讨论】:

【参考方案2】:

请尝试展示您尝试过的内容,我认为这就是您要寻找的内容。

List<string> split = Regex("[A-Z]1[a-z0-9]*");
    split= reg.Matches(InputText).Cast<Match>().Select(m => m.Value).ToList();

【讨论】:

如果您打算在第 3 行将其丢弃,则没有理由在您的第一行代码中实例化该列表。 说的很对,只是用正则表达式来显示分割。【参考方案3】:

用我的魔法水晶球,我确定这就是你要找的答案!

string[] split = Regex.Matches("AA55BB10CC1DD10E123", @"[A-Z]+\d+")
    .Cast<Match>()
    .Select(x => Regex.Match(x.Value, @"[A-Z]+").Value + "|" + Regex.Match(x.Value, @"\d+").Value).ToArray();

【讨论】:

以上是关于在 C# 中拆分字符串 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

用大写单词拆分字符串[关闭]

在正则表达式 c# 中拆分字符串

在c#中拆分逗号分隔多个字符串[重复]

如何在 C# 中拆分 OData 多级展开查询字符串?

c#中的字符串拆分返回一个空数组

C# 正则表达式拆分为 Java 模式拆分