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