if match(g:possibilities, "在 vim\(script\) 中的正则表达式之后使用反向引用?")
我希望能够检查 if 块内 $1 的值,以获得第一个反向引用。然而 vimscript 不是 perl。
有什么方法可以做到这一点吗?我知道在正则表达式中使用 \1、\2 等的可能性,但我想匹配然后在后续语句中使用这些值,就像在 perl、php 等中一样。
例如如果能在 g// 命令的计算部分中包含它,那就太好了,这样您就可以执行诸如对
:g/number: \(\d\+\)/b:number += v:matches[1] " or whatever the syntax is/could be
文件中某个数字的值求和之类的操作。
这可以做到吗?
如果没有,有充分的理由吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在进一步的启示中,我已经完成了
:lhelpgrep submatch | lope
并发现了至少一个其他有用的功能:您可以从substitute
命令的评估端使用submatch({nr})
。 EG我之前尝试过这种方法,但我想我正在搜索 /backref/ 并且没有得到我正在寻找的信息。
In further revelations I've done
:lhelpgrep submatch | lope
and discovered at least one other useful facility: that you can usesubmatch({nr})
from the evaluated side of asubstitute
command. EGI tried this approach before but I think I was searching for /backref/ and didn't get the info I was looking for.
matchlist({expr}, {pat}[, {start}[, {count}]])
返回搜索
{pat 时找到的 \1、\2、\3 等}
在{expr}
中示例:
matchlist({expr}, {pat}[, {start}[, {count}]])
Returns \1,\2,\3, etc as found when searching for
{pat}
in{expr}
Example: