我想在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文件中双引号之间的任何双引号。
答案 0 :(得分:3)
在评论中我的建议是:为什么不做string.Replace("\"", "")
并用引号括起来?是否存在不符合格式的情况?您回复说,您需要将最终字符串括在引号本身中。
让我尝试更明确和清晰,因为这正是我所建议的。做一些像:
inputString = "\"" + inputString.Replace("\"", "") + "\"";
这将删除所有引号,然后将最终结果包装在所需的引号中。
答案 1 :(得分:0)
尝试使用
inputString = Regex.Replace(inputString, @"(?<=\".*)\"(?=.*\")", @"");
答案 2 :(得分:0)
使用此:
inputString = Regex.Replace(inputString, @"([^\^,\r\n])""(?=[^$,\r\n])", @"$1");