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

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

AA | 55

BB | 10

抄送 | 1

DD | 10

E | 123

谢谢

【问题讨论】:

  • 您的拆分标准是什么?任意数量的字母后跟任意数量的数字?
  • 你试过什么?
  • 欢迎来到 StackOverflow!我们不是代码编写服务。虽然我们很乐意为您的具体问题提供帮助,但请向我们展示您目前所写的内容以及您遇到的具体问题。阅读How do I ask a good question?了解更多详情。
  • @DStanley,好像从第一个字母到字母前的最后一个数字,如果你理解我的话

标签: c# model-view-controller


【解决方案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();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-09
      • 1970-01-01
      • 2021-03-30
      • 1970-01-01
      • 1970-01-01
      • 2018-12-31
      • 1970-01-01
      相关资源
      最近更新 更多