我对Vim和正则表达式相当新。我有一个看起来像这样的文件:
parent = 0001,,,lje1
parent 0001 = category = 0002,,,ljef
parent 0001 = category = 0003,,,ljex4
parent = 0004,,,lxen
parent 0004 = category = 0005,,,lxvr
我希望得到最后一组数字,逗号和每行末尾的代码。如果我使用以下正则表达式:
/[0-9]*,*l[a-z0-9]*$/
它匹配每行的正确部分...数字,逗号和代码。但是,如果我尝试替换这样的话:
%s/.*\([0-9]*,*l[a-z0-9]*$\)/\1
我只是留下了这样的东西:
lje1
ljef
ljex4
lxen
lxvr
我想留下的是:
0001,,,lje1
0002,,,ljef
0003,,,ljex4
0004,,,lxen
0005,,,lxvr
如果有人知道我做错了什么,请帮忙。我搜索并检查了其他帖子,但我似乎无法找到解决方案。
干杯
答案 0 :(得分:4)
答案 1 :(得分:1)
您需要与.\{-}
进行惰性匹配,而不是.*
:
%s/.\{-}\([0-9]*,*l[a-z0-9]*$\)/\1