Vimscript:在字符串上获取正则表达式的所有匹配项
发布时间:2020-12-14 06:04:27 所属栏目:百科 来源:网络整理
导读:在 vimscript中,我们有替换函数,它将接受标志’g’来替换所有出现的事件. 有没有办法获得所有匹配字符串? 例如,使用字符串’x y z’,我们可以使用替换(‘x y z’,'[a-z]’,’abc’,’g’)将其更改为abc abc abc. 但是,有没有办法获得单个字符[‘x’,’y’,
在
vimscript中,我们有替换函数,它将接受标志’g’来替换所有出现的事件.
有没有办法获得所有匹配字符串? 例如,使用字符串’x y z’,我们可以使用替换(‘x y z’,'[a-z]’,’abc’,’g’)将其更改为abc abc abc. 但是,有没有办法获得单个字符[‘x’,’y’,’z’]? 我知道我们可以使用match()来获取匹配的位置,并使用matchstr()来获取匹配的字符串.但是如果我想迭代所有的匹配,我必须调用我认为不是有效方式的两个函数. 那么在vimscript中获取字符串的所有匹配是否有效? 解决方法
您可以使用sub-replace-expression替换来捕获所有匹配项.
let str = 'a b c' let lst = [] call substitute(str,'[a-z]','=add(lst,submatch(0))','g') 有关更多帮助请参阅: :h sub-replace-expression :h substitute :h add() :h submatch() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |