C# 将字符串拆分为多个字母和数字段

C# 将字符串拆分为多个字母和数字段,c#,C#,我有一个类似“ABCD232ERE44RR”的字符串。如何按字母/数字将其拆分为单独的部分。我需要: 第1部分:ABCD 第2部分:232 第三部分:ERE 第4部分:44 可以有任意数量的段。我正在考虑使用正则表达式,但不知道如何正确编写它 ((A-Z)+(\d)*)+ 你可以这样做 using System; using System.Collections.Generic; using System.Text.RegularExpressions; public class Pro

我有一个类似“ABCD232ERE44RR”的字符串。如何按字母/数字将其拆分为单独的部分。我需要: 第1部分:ABCD 第2部分:232 第三部分:ERE 第4部分:44

可以有任意数量的段。我正在考虑使用正则表达式,但不知道如何正确编写它

((A-Z)+(\d)*)+

你可以这样做

using System;
using System.Collections.Generic;   
using System.Text.RegularExpressions;
public class Program
{
    public static void Main()
    {
        var substrings = Regex.Split("ABCD232ERE44RR", @"[^A-Z0-9]+|(?<=[A-Z])(?=[0-9])|(?<=[0-9])(?=[A-Z])");
        Console.WriteLine(string.Join(",",substrings));
    }
}

Output : ABCD,232,ERE,44,RR
使用系统;
使用System.Collections.Generic;
使用System.Text.RegularExpressions;
公共课程
{
公共静态void Main()
{

var substrings=Regex.Split(“ABCD232RE44RR”,@“[^A-Z0-9]+|”(?我建议将其视为查找与目标模式的匹配项,而不是拆分为所需的部分。拆分赋予分隔符以意义,而匹配赋予标记以意义

您可以使用:

在指定的输入字符串中搜索指定正则表达式的所有匹配项


如果您决定不使用正则表达式,则始终可以采用手动方式

const string str = "ABCD232ERE44RR1SGGSG3333GSDGSDG";

var result = new List<StringBuilder> 
{
    new StringBuilder()
};

char last = str[0];

result.Last().Append(last);

bool isLastNum = Char.IsNumber(last);

for (int i = 1; i < str.Length; i++)
{
    char ch = str[i];

    if (!((Char.IsDigit(ch) && isLastNum) || (Char.IsLetter(ch) && !isLastNum)))
    {
        result.Add(new StringBuilder());
    }

    result.Last().Append(ch);
    last = ch;
    isLastNum = Char.IsDigit(ch);
}
const string str=“abcd232ere44rr1sgsg3333gsdgsdg”;
var结果=新列表
{
新的StringBuilder()
};
char last=str[0];
result.Last().Append(Last);
bool isLastNum=Char.IsNumber(最后一个);
对于(int i=1;i
const string str = "ABCD232ERE44RR1SGGSG3333GSDGSDG";

var result = new List<StringBuilder> 
{
    new StringBuilder()
};

char last = str[0];

result.Last().Append(last);

bool isLastNum = Char.IsNumber(last);

for (int i = 1; i < str.Length; i++)
{
    char ch = str[i];

    if (!((Char.IsDigit(ch) && isLastNum) || (Char.IsLetter(ch) && !isLastNum)))
    {
        result.Add(new StringBuilder());
    }

    result.Last().Append(ch);
    last = ch;
    isLastNum = Char.IsDigit(ch);
}