我对正则表达式的问题感到非常难过。我有一个逗号分隔文件,其中一些字段是一个用两个双引号括起来的值数组。这些双引号搞乱了我的表读取功能,我需要一个正则表达式来识别这些双引号,以便我可以删除它们。
仅供参考 - 我使用的语言是R,但我不认为这是相关的。
例如,文件如下所示:
val1,,,val4,val5,"this is another value","{""Value 1"",Value2,""Value 3"",Value4,Value5}"
我想删除括在大括号内的两个双引号,但保留其他所有内容。
我想要一个正则表达式来识别这两个双引号,以便我可以使用替换函数来删除它们。我希望输出为:
val1,,,val4,val5,"this is another value","{Value 1,Value2,Value 3,Value4,Value5}"
与上面相同,但在大括号内没有双引号。
非常感谢任何帮助。如果你认为我应该采取另一种方式,请随意提供不同的方法。
答案 0 :(得分:5)
答案 1 :(得分:1)
一种方法是分离和重新组合字符串:
x <- 'val1,,,val4,val5,"this is another value","{""Value 1"",Value2,""Value 3"",Value4,Value5}"'
x2 <- paste0(gsub('(.*\\{).*', '\\1', x), # capture up to {
gsub('"', '', gsub('.*\\{(.*)\\}.*', '\\1', x)), # remove quotes of inside {}
gsub('.*(\\}.*)', '\\1', x)) # capture after }
cat(x2)
#> val1,,,val4,val5,"this is another value","{Value 1,Value2,Value 3,Value4,Value5}"