Using a regular expression seems like overkill, when you already know exactly where to get the data. Use the Substring
method to get the parts of the string:
string[] source = new string[]{
line.Substring(0, 4),
line.Substring(4, 22),
line.Substring(26, 6),
line.Substring(32)
};
Edit:
To make it more configurable, you can use column widths from an array:
int[] cols = new int[] { 4, 22, 6 };
string[] source = new string[cols.Length + 1];
int ofs = 0;
for (int i = 0; i < cols.Length; i++) {
source[i] = line.Substring(ofs, cols[i]);
ofs += cols[i];
};
source[cols.Length] = line.Substring(ofs)