我该如何优化这个正则表达式的性能?

top*_*wik 3 .net c# regex optimization performance

我正在使用正则表达式将文本限定引号中未包含的逗号替换为制表符空格.我正在通过SSIS中的脚本任务运行文件内容的正则表达式.文件内容超过6000行.我看到了一个在文件内容上使用正则表达式的示例,看起来像这样

String FileContent = ReadFile(FilePath, ErrInfo);        
Regex r = new Regex(@"(,)(?=(?:[^""]|""[^""]*"")*$)");
FileContent = r.Replace(FileContent, "\t");
Run Code Online (Sandbox Code Playgroud)

那个替换可以理解地把它的甜蜜时间放在一个体面的文件上.

有没有更有效的方法来运行这个正则表达式?逐行读取文件并在每行运行正则表达式会更快吗?

Pet*_* O. 6

您似乎正在尝试将逗号分隔值(CSV)转换为制表符分隔值(TSV).

在这种情况下,您应该尝试查找CSV库并使用该库读取字段(并在必要时将它们转换为TSV).

或者,您可以检查每行是否有引号并相应地使用更简单的方法.