gpt4 book ai didi

regex - Vim 函数通过正则表达式从 Git URL 中剥离所有者/仓库

转载 作者:行者123 更新时间:2023-12-04 10:51:55 25 4
gpt4 key购买 nike

我正在尝试编写一个 vim 函数,该函数仅返回完整 Git(hub) URL 的 Owner/Repo 组件。

例如:

function! PackInstall(source)
let short = substitute(a:source, '(?<=\:)(.*?)(?=\.git)', '\1', "")
echo short
endfunction

在上面的例子中,我希望像 git@github.com:vim-airline/vim-airline.git 这样的“来源”返回 vim-airline/vim-airline 的“短”值.不幸的是,这个正则表达式似乎无法编译,“short”只是作为原始 git@github.com:vim-airline/vim-airline.git 返回。 .

在这种情况下使用正确的正则表达式是什么,或者有更简单的方法吗?

谢谢!

最佳答案

看起来您正在尝试使用类似 Perl 的正则表达式语法。但是 Vim 有它自己的风格。

一个可能的解决方案:

function! PackInstall(source)
return matchstr(a:source, ':\zs.*\ze\.git')
endfunction

另见 :h perl-patterns有关 Vim 与 Perl 正则表达式差异的概述。

关于regex - Vim 函数通过正则表达式从 Git URL 中剥离所有者/仓库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59439563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com