我很难理解Vim中这个“神奇”的东西。
目前我正在进行一个非常简单的正则表达式搜索,以获取字符串中的最后一个数字列表:
for file in files
echo file
let versionNum = matchstr(file, '(\d+)(?!.*\d)')
end for
上面有类似的东西。基本上,如果字符串是:xxx.xxx.xxx.x1234,我应该只解析出1234。
但是,我很难在matchstr中使用正则表达式,而且谷歌的一些搜索还不足以让我完全理解我在这里做错了什么。
答案 0 :(得分:3)
您需要在模式开头使用\v
明确要求在魔术模式下工作。
此外,vim不支持您正在使用的语法。虽然不完美,但我会使用:\v.*\D\zs\d+|^\d+
,或者更简单:\v\d+\ze\D*$
。