0

我有一个问题,我想在 match 函数中结合 \V 和单词边界,如下所示:

let index = match(line, "\\<\V".pattern."\v\\>")

以下作品完美:

let index = match(line, "\\<".pattern."\\>")

有谁知道如何将这两件事结合起来?

4

1 回答 1

2

即使有\V,反斜杠仍然有特殊含义,所以\<...\>应该继续工作。我个人会将 放在\V前面,并使用单引号来避免反斜杠加倍:

let index = match(line, '\V\<'.pattern.'\>')

我猜您打算将任何文字文本pattern作为整个单词进行匹配。为此,您仍然需要转义反斜杠。这是通常的做法:

let index = match(line, '\V\<'.escape(pattern, '\').'\>')

这可能无法匹配的原因是 whenpattern不以关键字字符开头/结尾。如果你需要处理这个问题,你必须先检查pattern并且只能有条件地添加\<and \>。(检查可以通过匹配来完成\k。)

于 2014-12-12T11:28:10.360 回答