首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oniguruma Regex -匹配整个组内容,而不仅仅是最后一次出现的内容

Oniguruma Regex -匹配整个组内容,而不仅仅是最后一次出现的内容
EN

Stack Overflow用户
提问于 2014-03-05 23:42:08
回答 1查看 500关注 0票数 1

我正在为Sublime文本编辑器(使用Oniguruma regex定义)编写一个语法高亮笔。基本上,我有这样的东西:

正则表达式:\((\w+\s*)*\)

测试:(how are you)

捕获组:1. you

我的问题是,只有捕获组中的最后一个匹配(并因此突出显示),而不是捕获组的全部内容。

在我的具体案例中:

正则表达式:\(\w+(\s+(\?\w+\s+)+-\s+(\w+))*\)

测试:(at ?l - location ?x - object)

捕获群组:

代码语言:javascript
复制
1. ?x - object
2. ?x
3. object

但是,我想要匹配整个组内容,如下所示:

代码语言:javascript
复制
1. ?x - object AND ?l - location
2. ?x AND ?l
3. object AND location
EN

回答 1

Stack Overflow用户

发布于 2014-03-06 01:55:21

正则表达式确保查找所有匹配项,而不仅仅是最后一项。

代码语言:javascript
复制
(?:\(at |(?!^)\G)(?:(?=(?:(?!\(at ).)*\))[^?\w])*?(?:(?<token1>\?\w+)|(?<token2>\w+))

演示

http://regex101.com/r/rF8pM2

在您的示例中,您将?l?x放在一个名为token1的命名捕获组中。可以使用命名捕获组token2访问objectlocation

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

https://stackoverflow.com/questions/22202309

复制
相关文章

相似问题

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