在Vim中使用Magic? (matchstr函数中的正则表达式)

时间:2017-09-19 19:54:24

标签: vim

我很难理解Vim中这个“神奇”的东西。

目前我正在进行一个非常简单的正则表达式搜索,以获取字符串中的最后一个数字列表:

    for file in files
        echo file
        let versionNum = matchstr(file, '(\d+)(?!.*\d)')
    end for

上面有类似的东西。基本上,如果字符串是:xxx.xxx.xxx.x1234,我应该只解析出1234。

但是,我很难在matchstr中使用正则表达式,而且谷歌的一些搜索还不足以让我完全理解我在这里做错了什么。

1 个答案:

答案 0 :(得分:3)

您需要在模式开头使用\v明确要求在魔术模式下工作。

此外,vim不支持您正在使用的语法。虽然不完美,但我会使用:\v.*\D\zs\d+|^\d+,或者更简单:\v\d+\ze\D*$