From: "zw963 (Wei Zheng)" Date: 2021-11-06T12:36:27+00:00 Subject: [ruby-core:105961] [Ruby master Feature#18291] When use =~ with named group, if regex is on the right side, variable not defined. Issue #18291 has been updated by zw963 (Wei Zheng). jeremyevans0 (Jeremy Evans) wrote in #note-1: > `regexp.rdoc` documents that the literal regexp must be on the left hand side in order to assign to local variables, so this is not a bug. Switching to feature request. Hi, Jeremy, thank you for answer, yes, maybe it is a feature, not a bug, but, i guess do some trick specially only for this named regexp group matching to make variable is always available maybe is possible. ---------------------------------------- Feature #18291: When use =~ with named group, if regex is on the right side, variable not defined. https://bugs.ruby-lang.org/issues/18291#change-94508 * Author: zw963 (Wei Zheng) * Status: Open * Priority: Normal ---------------------------------------- Following code not work. ```rb if "Billy Zheng" =~ /(?\w+)\s+(?\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 =~ ```rb if /(?\w+)\s+(?\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. -- https://bugs.ruby-lang.org/ Unsubscribe: