Regex 向后搜索字符串

Regex 向后搜索字符串,regex,search,vim,Regex,Search,Vim,有人知道如何使用match()创建反向搜索字符串吗 (^=光标位置) 我想在光标(word2)之前找到单词的开始和结束列 我尝试了这个正则表达式,但没有成功: match(getline('.'), '?\w\ze\s', col('.')-1) ?在字符串中不起作用要向后搜索您将正常命令?与作用于字符串的函数match()混淆了。实际上,您要查找的是searchpos()函数,它在缓冲区中搜索某些模式并返回位置 let [start_line, start_col] = searchpos(

有人知道如何使用
match()
创建反向搜索字符串吗

^
=光标位置)

我想在光标(word2)之前找到单词的开始和结束列

我尝试了这个正则表达式,但没有成功:

match(getline('.'), '?\w\ze\s', col('.')-1)

在字符串中不起作用要向后搜索

您将正常命令
与作用于字符串的函数
match()
混淆了。实际上,您要查找的是
searchpos()
函数,它在缓冲区中搜索某些模式并返回位置

let [start_line, start_col] = searchpos('\<\w\+\>', 'bn')
let [end_line, end_col] = searchpos('\<\w\+\>', 'bne')

非常感谢你。我试过searchpos()。我注意到,如果字符位于单词的末尾,它不会将字符识别为[èèòù](search()也有同样的问题)。这就是为什么我切换到match()/matchend()。您可以使用character类。e、 g.
[[:alnum:][uu]\+
。有关更多信息,请参见
:h/[]
let [start_line, start_col] = searchpos('\<\w\+\>', 'bn')
let [end_line, end_col] = searchpos('\<\w\+\>', 'bne')
:h search(
:h searchpos(