Regex 在正则表达式中,显式字符如何选择性地出现在替换中?

Regex 在正则表达式中,显式字符如何选择性地出现在替换中?,regex,Regex,我试图从文本文件中提取图形信息,并将其转换为CSV格式。数据以以下格式显示: X-axis Y-axis dY/dX 我打算将其转换为: X-axis,Y-axis,dY/dX 但是,应注意,从使用的软件导出时,dY/dX列并不总是存在 我目前使用的正则表达式是: \s*(?<xaxis>\-*\d+\.\d+)\s*(?<yaxis>\-*\d+\.\d+)\s*(?<dydx>\-*\d+\.\d+)* 我的问题是:即使匹配表达式

我试图从文本文件中提取图形信息,并将其转换为CSV格式。数据以以下格式显示:

    X-axis    Y-axis    dY/dX
我打算将其转换为:

X-axis,Y-axis,dY/dX
但是,应注意,从使用的软件导出时,dY/dX列并不总是存在

我目前使用的正则表达式是:

\s*(?<xaxis>\-*\d+\.\d+)\s*(?<yaxis>\-*\d+\.\d+)\s*(?<dydx>\-*\d+\.\d+)*

我的问题是:即使匹配表达式说明了dY/dX列的可选性质,替换表达式如何做到同样的效果?目前,如果dY/dX列不存在,CSV文件中将打印一个尾随逗号。我明白这不是一个大问题,但我想知道这是否可能。

事实证明这是不可能的。我已经重写了程序,首先将数据存储在DataTable实例中,然后从中生成CSV文件。这样,可以确定列的数量,并对输出应用必要的格式。

如何对数据进行后处理并删除尾随的逗号?不是答案,但最后一个*可能应该是?如果不能有多个dY/dX。如何替换,用什么语言?如果要将CSV传递给Excel,我认为它不关心行是否以逗号结尾;事实上,这样做可能会更好。Excel实际上喜欢所有行都有相同数量的列,并且每行都有尽可能多的空字段来填充每一行。我已经提交了至少一个针对软件的bug,这些软件没有预料到Excel CSV文件中会有几十个尾随逗号。。。
${xaxis},${yaxis},${dydx}