Regex.Split表现出奇怪的行为

Ori*_*ian 4 c# regex

我有一个正则表达式,我正在对另一个字符串进行拆分,我得到了奇怪的结果.

        string subjectString = "Triage|Follow Up|QA";
        string[] splitArray = null;
        try
        {
            splitArray = System.Text.RegularExpressions.Regex.Split(subjectString, @"(?<=(^|[^\\]))\|");

            foreach (var item in splitArray)
            {
                System.Diagnostics.Debug.Print(item);
            }
        }
        catch
        {
        }
Run Code Online (Sandbox Code Playgroud)

正在印刷的物品是:

分类
e
跟进
p
QA

正则表达式在RegexBuddy中正常运行,但在C#中则不行.什么导致奇怪的行为?解释为什么拆分功能按照它的方式起作用的额外要点.

Gum*_*mbo 5

(…)你的后视断言中的分组导致了这种情况.请尝试使用非捕获组:

@"(?<=(?:^|[^\\]))\|"
Run Code Online (Sandbox Code Playgroud)

或者根本没有额外的分组:

@"(?<=^|[^\\])\|"
Run Code Online (Sandbox Code Playgroud)