我想使用正则表达式从VIM文档中提取数据,但我只需要精确匹配而不是空洞行。基本上只需复制:%s将替换。
简单示例:
<td>sell:8092.23</td>
<td>buy:850.00</td>
<td>sell:99.99</td>
...并提取数字:
8092.23
850.00
99.99
这在VIM中是否可行?如果可以的话? 提前谢谢。
答案 0 :(得分:1)
使用带有锚点的正则表达式到行的开头和结尾,进行分组以保留数字并用它替换整行。从shell运行以下命令,它将创建一个新文件output.txt
,其中包含未修改输入文件的数字:
vim -u NONE -N -c '
set backup |
%s/\v^\D+(\d+\.\d*).*$/\1/ |
saveas! output.txt |
q!
' infile
答案 1 :(得分:1)
试试这个:
%s/\v.{-}([0-9.]+).*/\1/