在 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# 中拆分字符串 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章