C# 如何在C中按可变字符数拆分字符串#

C# 如何在C中按可变字符数拆分字符串#,c#,split,C#,Split,我从串行端口读取数据,我想将这些数据分割成更小的数字 例如: String inputData = "3032592556231055126395692345723465234578235698" output : data1 = "30325925562" data2 = "31055126395" data3 = "692345723" data4 = "

我从串行端口读取数据,我想将这些数据分割成更小的数字 例如:

        String  inputData = "3032592556231055126395692345723465234578235698"

        output : data1 = "30325925562"
                 data2 = "31055126395"
                 data3 = "692345723"
                 data4 = "465234578"
                 data5 = "235"
                 data6 = "698"
这正是我想要做的。

使用

string part = new string(inputString.Skip(12).Take(12).ToArray());

假设
data1
data2
始终保持11位,
data3
data4
9位,等等,可以使用
System.Text.RegularExpression.Regex
来帮助您实现所需(无需使用
子字符串


我承认,这不是最漂亮的解决方案。

使用。如何知道数据1何时结束,数据2何时开始?它们总是相同数量的字符吗?@Oren Melzer:数据重复自身,但使用不同的字符values@dtb我知道Substring方法,但我要说的是如何将数据拆分为变量大小,如果它以
不同的值重复自身
Oren
的问题是,数据是否总是以您在问题中显示的6个格式化结构结尾。。?如果是这样,那么就使用
SubString()
方法,或者如果你足够聪明,你可以用文件结构创建一个
enum
,并以这种方式进行工作。如果OP不理解
SubString()
方法,我很怀疑他会理解你提供的扩展方法。。顺便说一句,很棒的代码..@DJKRAZE,如果他想理解与否-他的生意。我为他提供了一个易于复制的单线解决方案。他的问题显然是个愚蠢的问题,但这不是重点
Regex regex = new Regex("(\d{11})(\d{11})(\d{9})(\d{9})(\d{3})(\d{3})");
Match match = regex.Match(inputData);

if (match == Match.Empty)
    // Your inputData did not match the Regex, decide what to do here

data1 = match.Groups[1];
data2 = match.Groups[2];
// etc.