我遇到的问题是我想在匹配函数中组合\ V和字边界,如下所示:
let index = match(line, "\\<\V".pattern."\v\\>")
以下作品完美无缺:
let index = match(line, "\\<".pattern."\\>")
有没有人知道如何将这两件事结合起来?
答案 0 :(得分:2)
即使使用\V
,反斜杠仍具有特殊含义,因此\<...\>
应继续有效。我个人会把\V
放在前面,并使用单引号来避免加倍反斜杠:
let index = match(line, '\V\<'.pattern.'\>')
我猜你打算将pattern
中的任何文字文本作为整个单词进行匹配。为了工作,你仍然需要逃避反斜杠。这就是通常的做法:
let index = match(line, '\V\<'.escape(pattern, '\').'\>')
这可能无法匹配的原因是pattern
没有以关键字字符开头/结尾。如果您需要处理,则必须先检查pattern
,然后才有条件地添加\<
和\>
。 (可以通过与\k
匹配来完成检查。)