C# 什么';是一个将匹配逗号引号的正则表达式吗?

C# 什么';是一个将匹配逗号引号的正则表达式吗?,c#,csv,ssis,C#,Csv,Ssis,我正在处理一个CSV文件,其中所有值都用引号括起来,并用逗号分隔。在某些情况下,两个逗号之间只有一个引号,我想用一个逗号替换这些字符串。这是ETL提取的一部分。SSI中不需要正则表达式来替换,,,,,这可以通过派生列和替换函数完成,如本例所示: 此处,正在更改的列称为Name,替换表达式为 REPLACE([Name], ",'," , ",") 要使用该方法,请包括命名空间: 使用System.Text.regular表达式; 然后使用您的模式,

我正在处理一个CSV文件,其中所有值都用引号括起来,并用逗号分隔。在某些情况下,两个逗号之间只有一个引号,我想用一个逗号替换这些字符串。这是ETL提取的一部分。

SSI中不需要正则表达式来替换
,,,
,,这可以通过派生列和替换函数完成,如本例所示:

此处,正在更改的列称为Name,替换表达式为

REPLACE([Name], ",'," , ",") 
要使用该方法,请包括命名空间:

使用System.Text.regular表达式;
然后使用您的模式
,“,
和选项声明一个实例,考虑到您正在阅读数百万行,该选项将提高您的性能

var regex=new regex(“,\”,“,RegexOptions.Compiled);
然后将匹配项替换为逗号

var data=“\“value\”、\“、\“value\”、\“value\”\n
+“值”、“值”、“值”\n
+“\”值“,”值“,”值“,”值“\n”;
var result=regex.Replace(数据,“,”);
数据
将通过类似的方式成为您的CSV


你的意思是想在
“value”,“value”
文件中查找
,“,”,
?你对空格敏感吗?一些你拥有的示例值和你希望匹配的值会有所帮助。是的,我想在[“value”,“value”]文件中查找[,“,]。脏数据相当于[“value”、“,“value”]。我将尝试此解决方案。但是,为了澄清,我尝试将逗号双引号逗号(,,)替换为逗号(,)。我的源文件包含大约140万行逗号分隔的值,这些值具有双引号文本限定符。在第930K行,第三列和第四列之间有一个随机的额外条目“,”之前,我一直很好。我喜欢这个解决方案;它很干净。但它对我不起作用。我使用的是ReadAllLines()var data=File.ReadAllLines(strSourceFile);var result=regex.Replace(data,,”);我喜欢这个解决方案;它很干净。但我会出错。var regex=new regex(“,\”,“,RegexOptions.Compiled);var data=File.ReadAllLines(strSourceFile);var result=regex.Replace(数据,“,”);“数据”上出现错误:无法从“字符串[]”转换为“字符串”。注意:我是stackoverflow和C#的新手。因此,我还没有弄清楚如何包含正确的格式。我可能应该更清楚一些。使用
ReadAllLines()
您必须遍历这些行,但可以将它们分开。如果不需要,可以使用将整个文件读入
字符串。你有偏好吗?不管怎样,我都会修改答案。注释中的代码块是:`Code`<代码>字符串strSourceFile;字符串strDestinationFile;strSourceFile=(字符串)Dts.Variables[“varSourceFile”].Value;strDestinationFile=(字符串)Dts.Variables[“varDestinationFile”].Value;var regex=new regex(“,\”,“,RegexOptions.Compiled);string data=File.ReadAllText(strSourceFile);string result=regex.Replace(data,”);File.writealtext(strDestinationFile,result);