删除双引号之间的所有双引号

时间:2012-10-17 15:04:09

标签: c# regex

我想在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文件中双引号之间的任何双引号。

3 个答案:

答案 0 :(得分:3)

在评论中我的建议是:为什么不做string.Replace("\"", "")并用引号括起来?是否存在不符合格式的情况?您回复说,您需要将最终字符串括在引号本身中。

让我尝试更明确和清晰,因为这正是我所建议的。做一些像:

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

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

答案 1 :(得分:0)

尝试使用

inputString = Regex.Replace(inputString, @"(?<=\".*)\"(?=.*\")", @""); 

答案 2 :(得分:0)

使用此:

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