-3

如果在双引号之间出现,我想在 CSV 文件中使用正则表达式删除所有双引号。目前我正在使用以下正则表达式来执行此操作:

inputString = Regex.Replace(inputString, @"([^\^,\r\n])""([^$,\r\n])", @"");

但如果我有两个以上的双引号,它就不起作用,例如:

"This is my "test" string"(有效)
"This "is" my "test" string"(无效)
"This is" my test string"(无效)

我需要一个通用的正则表达式,它可以删除 csv 文件中双引号之间的任何双引号。

4

3 回答 3

3

在评论中,我的建议是:为什么不直接string.Replace("\"", "")用引号括起来呢?在某些情况下,这不是格式吗?您回答说您需要将最终字符串括在引号中。

让我尝试更加明确和清晰,因为这正是我的建议。只需执行以下操作:

inputString = "\"" + inputString.Replace("\"", "") + "\"";

这将删除所有引号,然后将最终结果包装在所需的引号中。

于 2012-10-17T15:19:03.583 回答
0

尝试使用

inputString = Regex.Replace(inputString, @"(?<=\".*)\"(?=.*\")", @""); 
于 2012-10-17T15:14:51.523 回答
0

用这个:

inputString = Regex.Replace(inputString, @"([^\^,\r\n])""(?=[^$,\r\n])", @"$1");
于 2012-10-17T15:20:33.300 回答