matchstr 与 vimscript 中的正则表达式不匹配

sti*_*g_1 6 regex vim

下面的 vimscript 代码在一个函数内并且没有匹配,我不明白为什么。

let curLine= '[exec] setup/src/LinkedList.cs(6,15): warning CS0659:'
echo curLine
let matchs= matchstr(curLine,'[(][0-9]+[,][0-9]+[)]')
if matchs == ''
    echo 'no match'
    return
endif
echo 'match found'
Run Code Online (Sandbox Code Playgroud)

当我在 Vim 中运行该函数时,回显了“不匹配”。我究竟做错了什么?我尝试使用http://regexpal.com/测试这个正则表达式,它似乎按我期望的方式工作(突出显示了里面的行和字符号的括号)

Ken*_*ent 4

应该是这样的:

let matchs= matchstr(curLine,'[(][0-9]\+[,][0-9]\+[)]')
Run Code Online (Sandbox Code Playgroud)

匹配总是像设置“magic”并且“cpoptions”为空一样完成。

因为它像“魔法”一样匹配,所以我们需要+在正则表达式中转义以赋予其特殊含义。有关更多详细信息,magic您可以阅读:h magic