Project

General

Profile

Actions

Feature #18291

open

When use =~ with named group, if regex is on the right side, variable not defined.

Added by zw963 (Wei Zheng) over 2 years ago. Updated over 2 years ago.

Status:
Open
Assignee:
-
Target version:
-
[ruby-core:105947]

Description

Following code not work.

if "Billy Zheng" =~ /(?<first_name>\w+)\s+(?<last_name>\w+)/
  p first_name
  p last_name
end
# NameError: undefined local variable or method `first_name' for main:Object

But, if we switch left and right between =~

if /(?<first_name>\w+)\s+(?<last_name>\w+)/ =~ "Billy Zheng"
  p first_name
  p last_name
end
# => "Billy"
# =>"Zheng"

I know ruby keep this same behavior since 1.9, but i am curious if we can improve this?

I consider this as a bug, because that not good, when i want to use this way, i have to
take care must write regexp before =~

Thank you.

Actions

Also available in: Atom PDF

Like0
Like0Like0