【发布时间】:2011-04-03 08:53:51
【问题描述】:
我有一个格式如下的 csv 文件:
示例 csv:
bear,brown,mean,large ant,black,strong,tiny cat,yellow,moody,small
如何在每个值周围加上双引号?如何使用正则表达式完成此操作?
我正在使用 TextMate(文本编辑器)来使用正则表达式进行查找/替换。
【问题讨论】:
我有一个格式如下的 csv 文件:
示例 csv:
bear,brown,mean,large ant,black,strong,tiny cat,yellow,moody,small
如何在每个值周围加上双引号?如何使用正则表达式完成此操作?
我正在使用 TextMate(文本编辑器)来使用正则表达式进行查找/替换。
【问题讨论】:
这里是正则表达式的重要部分。希望我在转换为 textmate 格式时做对了:
搜索 - ([^,]*)(,|$)
替换 - "$1"$2
搜索说明:查找每个不是逗号的字符,直到到达逗号或行尾。捕获要在一个变量中引用的字符串的匹配项,并在另一个变量中捕获逗号/行尾匹配项。
替换说明:原始字符串、引号以及其后的逗号或换行符。
【讨论】:
:%s/\([^,]*\)\(,\|$\)/"\1"\2/g - 刚刚对其进行了测试,并且它适用于 OP 的示例 :) 也许您转义了引号或错误地捕获了引用?
你可以从:
find: ,
replace: ","
然后在开头和结尾添加一个“?
【讨论】: