Actions
Bug #13716
closedUnexpected or undocumented (or maybe both) behaviour when mixing String#scan with named captures
Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.5.0dev (2017-06-22 trunk 59146) [x86_64-darwin15]
Description
Is this intentional?
[1] pry(main)> "1q2w3e4r".scan(/(\w\d)(foo){0}/)
=> [["q2", nil], ["w3", nil], ["e4", nil]]
[2] pry(main)> "1q2w3e4r".scan(/(\w\d)(?<foo>foo){0}/)
=> [[nil], [nil], [nil]]
The only difference is the capture being named.
Updated by akr (Akira Tanaka) over 7 years ago
- Status changed from Open to Feedback
When you use a named capture, parenthesises are not considered as a capture.
So, you need to add name for all captures as:
% ruby -e 'p "1q2w3e4r".scan(/(?<bar>\w\d)(?<foo>foo){0}/)'
[["q2", nil], ["w3", nil], ["e4", nil]]
Updated by shyouhei (Shyouhei Urabe) over 7 years ago
- Status changed from Feedback to Open
akr (Akira Tanaka) wrote:
When you use a named capture, parenthesises are not considered as a capture.
Where can I learn that restriction? I have never heard of such thing before.
Updated by jeremyevans (Jeremy Evans) over 5 years ago
- Status changed from Open to Closed
Applied in changeset git|bd3283338250827e0f9e2fd1785bd1fd4151e66d.
Document behavior when mixing named captures with parentheses [ci skip]
Fixes [Bug #13716]
Actions
Like0
Like0Like0Like0