下面的 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/测试这个正则表达式,它似乎按我期望的方式工作(突出显示了里面的行和字符号的括号)
应该是这样的:
let matchs= matchstr(curLine,'[(][0-9]\+[,][0-9]\+[)]')
Run Code Online (Sandbox Code Playgroud)
匹配总是像设置“magic”并且“cpoptions”为空一样完成。
因为它像“魔法”一样匹配,所以我们需要+
在正则表达式中转义以赋予其特殊含义。有关更多详细信息,magic
您可以阅读:h magic
。