红宝石中的Regexp - 我可以使用括号而不进行分组吗?

Gad*_*i A 13 ruby regex

我有一个形式的正则表达式:

/(something complex and boring)?(something complex and interesting)/
Run Code Online (Sandbox Code Playgroud)

我对第二个括号的内容感兴趣; 第一个只是为了确保正确的匹配(因为无聊的部分可能存在或可能不存在,但如果存在,我会偶然将它与正则表达式匹配到有趣的部分).

所以我可以使用$ 2访问第二场比赛.然而,为了与其他正则表达式的一致性,我正在使用我希望以某种方式$ 1将包含第二个parethesis的内容.可能吗?

Fra*_*itt 18

使用非捕获组:

r = /(?:ab)?(cd)/
Run Code Online (Sandbox Code Playgroud)


J-_*_*_-L 9

这是一个非ru​​by regexp功能.使用/(?:something complex and boring)?(something complex and interesting)/(注意?:)来实现这一目标.

顺便说一下,在Ruby 1.9中,您可以/(something complex and boring)?(?<interesting>something complex and interesting)/使用$~[:interesting];)来访问该组