在尝试解析字符串之前,我试图将其标准化。基本上删除逗号之前或之后的所有空格,如果两个或多个逗号仅由空格分隔,则替换为单个逗号。

var r = new Regex(@"(\s*,+\s*)");
var query = r.Replace("my reg, is a   disaster    everytime , i,try ,it,       yep, ,disaster.", ",");


输出应为:

my reg,is a   disaster    everytime,i,try,it,yep,disaster.


但它:

my reg,is a   disaster    everytime,i,try,it,yep,,disaster.


任何帮助表示赞赏

最佳答案

尝试

var r = new Regex(@"(\s|,)*,(\s|,)*");


基本上,用至少一个逗号存在的单个逗号替换任意数量的逗号和空格。

10-02 21:48