vim编号之间的搜索和更换
我有一个模式,CSV文件中的数字之间有双引号。 我可以通过[0-9]\“[0-9]来搜索模式,但如何在删除双引号.CSV格式时保留值,如下所示:vim编号之间的搜索和更换,vim,Vim,我有一个模式,CSV文件中的数字之间有双引号。 我可以通过[0-9]\“[0-9]来搜索模式,但如何在删除双引号.CSV格式时保留值,如下所示: "1234"5678","Text1","Text2" "987654321","Text3","text4" "7812891"3","Text5","Text6" 正如你可能注意到的,我想删除一些数字之间的双引号 我尝试了以下方法,这是不正确的: :%s/[0-9]\"[0-9]/[0-9][0-9]/g 是否可以在每个搜索模式下执行一个命令,
"1234"5678","Text1","Text2"
"987654321","Text3","text4"
"7812891"3","Text5","Text6"
正如你可能注意到的,我想删除一些数字之间的双引号
我尝试了以下方法,这是不正确的:
:%s/[0-9]\"[0-9]/[0-9][0-9]/g
是否可以在每个搜索模式下执行一个命令,可以向前移动一个字符并将其删除。如何在搜索和替换中嵌入“lx”。您需要捕获组。请尝试:
:%s/\(\d\)"\(\d\)/\1\2/g
[数字也可以用
\d
表示]您需要在正则表达式中使用边界
试试这个:
:%s/\([0-9]\)"\([0-9]\)/\1\2/g
有点幼稚的解决方案:
%s/^"/BEGINNING OF LINE QUOTE MARK/g
%s/\",\"/quote comma quote/g
%s/\"$/quota end of line/g
%s/\"//g
%s/quota end of line/"/g
%s/quote comma quote/","/g
%s/BEGINNING OF LINE QUOTE MARK/"/g
可以很容易地创建宏,并根据需要多次调用它。我知道这个问题已经得到了回答,但这里有另一种方法:
:%s/\d\zs"\ze\d
说明:
%s
替换整个缓冲区\d
查找数字\zs
在此处设置匹配的开始位置“
查找双引号\ze
在此处设置匹配结束\d
查找数字这使得替换命令仅匹配由数字包围的双引号。
省略替换字符串只会删除匹配项