Feature #9253

Regexp named match and case statement

Added by Olivier El Mekki about 1 year ago. Updated about 1 year ago.

[ruby-core:59139]
Status:Open
Priority:Low
Assignee:-

Description

Hello,

I've notice there's no mean to use captured named matches with case
statement :

> a, b = "foo bar", nil
=> ["foo bar", nil]

>   case a
>     when /foo (?<b>bar)/ then p b
>   end
nil

This is not critical, because we can use $1, $2 and friends in place, but it
certainly would be nice and less surprising if it worked.

NB : btw, the link "How to report" [1] from tracker home page [2] is a 404.

[1] https://bugs.ruby-lang.org/projects/ruby/wiki/HowtoReport
[2] https://bugs.ruby-lang.org/

History

#1 Updated by Yusuke Endoh about 1 year ago

There is a way to capture it: use $~[:b] instead of b. Nonetheless, I like this proposal.

Yusuke Endoh mame@tsg.ne.jp

#2 Updated by Olivier El Mekki about 1 year ago

I didn't know of this syntax, thanks Yusuke.

mame (Yusuke Endoh) wrote:

There is a way to capture it: use $~[:b] instead of b. Nonetheless, I like this proposal.

Yusuke Endoh mame@tsg.ne.jp

#3 Updated by Robert A. Heiler about 1 year ago

Indeed, I did not know of $~[:b] either. Quite nice.

#4 Updated by Hiroshi SHIBATA about 1 year ago

  • Target version changed from 2.1.0 to current: 2.2.0

Also available in: Atom PDF