使用 regexp 进行拆分,避免重写 Split 函数

Split using regexp with exceptions, avoid a rewrite of Split function

我想使用正则表达式拆分一组行,逗号前面有破折号时除外。

这是问题行:

    Likör, Choklad-, kaffe- och nötter

生成的拆分应该如下所示:

    Likör
    Choklad-, kaffe- och nötter

测试数据:

Punsch
Rosé
Mousserande vin, Rosé
Röda, Fruktigt & Smakrikt
Likör, Choklad-, kaffe- och nötter
Likör, Grädde och ägg
Vita, Lätt & Avrundat

每一行都单独通过 Split 函数。 如果有帮助,语言是 C#,我使用的函数是

System.Text.RegularExpressions.Regex.Split

我一直无法掌握正则表达式。尝试过的正则表达式:

@"[^-],"    
@"(,)(?!-)" 
@"[^-][,]"  
@"(?!-,),"  
@"[?:^-][,]"
@"^-,|[,]"  
@"[^-](?:,)"

尝试使用负向后视模式

(?<!-),  

Demo