Regex.Split 若正則匹配字符串開頭,結果首元素為空字符串。題主模式 A.* (Multiline) 匹配每行開頭的 `A`,導致首行前產生空匹配。
var text = @"A111
A222
A333";
var arr = Regex.Split(text, @"A.*", RegexOptions.Multiline);
// arr = ["", "111", "222", "333"] // 首元素空
var matches = Regex.Matches(text, @"^A(.*)$", RegexOptions.Multiline);
var result = matches.Cast<Match>().Select(m => m.Groups[1].Value).ToArray();
// ["111", "222", "333"]
var arr = Regex.Split(text, @"A.*", RegexOptions.Multiline)
.Where(s => !string.IsNullOrEmpty(s)).ToArray();
(?<=A).* (Lookbehind) 或直接 ^A(.*)$ 捕獲。若單元內容跨行(如題主補充),用 Singleline (`.` 匹配換行) + 非貪婪:
var pattern = @"A(.*?)(?=A|\z)"; // 非貪婪匹配至下一個 A 或字符串末尾
Regex.Matches(text, pattern, RegexOptions.Singleline)
.Cast<Match>()
.Select(m => m.Groups[1].Value)
.ToArray();