【发布时间】:2013-08-11 23:27:50
【问题描述】:
我想在双引号中转换一个全逗号分隔的字符串文字,例如:
"hello,world,stack,overflow"
"['hello','world','stack','overflow']"
其中每个元素都包含在单引号中,整个原始字符串包含在方括号和双引号中。我如何在 Vim 中做到这一点?
在我的输入中,这种以逗号分隔的引用字符串是 CSV 格式表中行的一部分。下面是一个例子:
other,fields,123,456,"hello,world,stack,overflow"
second,row,567,890,"another,comma,separated,string"
...
我想把它改成:
other,fields,123,456,"['hello','world','stack','overflow']"
second,row,567,890,"['another','comma','separated','string']"
...
我的目标字符串都不跨越多行。
【问题讨论】:
-
你有多少这样的?他们是每行一个吗?正则表达式不能很好地匹配引号(即无法区分第一个和最后一个),尽管如果行中没有其他引号,您可能会侥幸逃脱。
-
每行至少有一个。实际上它是一个 csv 文件。
-
能给个示例文件吗?
-
给你。如果有不清楚的地方请告诉我:)
-
如果您知道字符串中正好有四个字段,我建议您使用宏。
标签: regex list vim replace cassandra