首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果匹配(g:可能性,“在vim中使用正则表达式之后的反向引用\(script\)?”)

如果匹配(g:可能性,“在vim中使用正则表达式之后的反向引用\(script\)?”)
EN

Stack Overflow用户
提问于 2010-01-03 23:33:20
回答 2查看 1.3K关注 0票数 1

我希望能够,比如说,检查if块中$1的值,以获得第一个反向引用。但是,vimscript不是perl。

有什么方法可以做到这一点吗?我知道在regex中使用\1、\2等的可能性,但我希望匹配这些值,然后在后续语句中使用这些值,就像在perl、php等中一样。

例如,如果在g//命令的计算部分中有,那就太好了,这样你就可以这样做了。

代码语言:javascript
运行
复制
:g/number: \(\d\+\)/b:number += v:matches[1] " or whatever the syntax is/could be

对文件中某数的值求和。

这可以做到吗?

如果不是,有什么好的理由吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-01-04 02:05:59

matchlist({expr}, {pat}[, {start}[, {count}]])

返回在{expr}中搜索{pat}时找到的\1、\2、\3等

示例:

回声匹配列表(‘acd’,'(a)\?(b)\?(c)\?(.*)')

结果为:'acd','a','','c','d','',''

票数 1
EN

Stack Overflow用户

发布于 2010-01-05 03:03:41

在进一步的介绍中,我做了:lhelpgrep submatch | lope,发现至少还有一个有用的工具:您可以从substitute命令的评估端使用submatch({nr})。例如

代码语言:javascript
运行
复制
:s/there a\(r\)e n\(o \)stupid questions, on\(ly\) stupid people/\=toupper(submatch(2).submatch(1).submatch(3)."?")/

我以前尝试过这种方法,但我想我搜索的是/backref/,没有得到我想要的信息。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1995286

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档