0

我想使用正则表达式从带有 VIM 的文档中提取数据,但我只需要完全匹配而不需要孔线。基本上只需复制 :%s 将替换的内容。

简单的例子:

<td>sell:8092.23</td>
<td>buy:850.00</td>
<td>sell:99.99</td>

...并提取数字:

8092.23
850.00
99.99

这在 VIM 中是否可行,如果如何?提前致谢。

4

2 回答 2

1

使用带有锚点的正则表达式到行的开头和结尾,进行分组以保留数字并用它替换整行。从 shell 运行以下命令,它将创建一个新文件output.txt,其中包含未修改输入文件的数字:

vim -u NONE -N -c '
    set backup |
    %s/\v^\D+(\d+\.\d*).*$/\1/ |
    saveas! output.txt |
    q!
' infile
于 2013-07-22T20:53:00.933 回答
1

试试这个:

%s/\v.{-}([0-9.]+).*/\1/
于 2013-07-22T21:14:07.570 回答