vim正则表达式改变值

时间:2018-03-12 14:21:11

标签: regex vim

我在文本文件中有模式Avg="113.01",当我应用%s/="/=/g之类的正则表达式时,它将值113.01更改为62.31

我要做的就是删除双引号,但是它的数字值全部都在变化。

2 个答案:

答案 0 :(得分:1)

此表达式应该:s/="\([0-9.]\{1,\}\)"/=\1/g。 它查找用双引号括起来的数字模式,并仅保留数字模式。

我用[0-9.]\{1,\}查找模式编号。它表示每个字符串的最小长度为1且没有最大值的数字或点。括号前的反斜杠在正则表达式中是必需的,以便不被os错误地解释。然后将此数字模式保存在括号内(也使用反斜杠),以便在第二部分中使用\ 1表示法重复使用。 其余的很简单。

答案 1 :(得分:0)

你也可以这样做:

s/"\([^"]*\)/\1/g

在第一次引用之后和最后一次引用之前捕获所有内容。