Misc #14500
Missing Regexp documentation and clarification on behavior of \K for edge case
Status:
Open
Priority:
Normal
Assignee:
-
Description
Capturing section (https://ruby-doc.org/core-2.5.0/Regexp.html#class-Regexp-label-Capturing)
- formatting issue:
n<sup>th</sup>
- suggestion to add a note on
\0
similar to the note mentioned in Special global variables (https://ruby-doc.org/core-2.5.0/Regexp.html#class-Regexp-label-Special+global+variables) section about$&
- suggestion to add that numbered capturing groups is limited to
9
Anchors section (https://ruby-doc.org/core-2.5.0/Regexp.html#class-Regexp-label-Anchors)
- suggestion to add documentation on
\K
- need clarification if the below behavior seen is expected and mention it while adding documentation
$ echo 'aaa' | ruby -pe 'gsub(/a\K/, ":")' a:aa: $ # what I expected $ echo 'aaa' | ruby -pe 'gsub(/(a)/, "\\1:")' a:a:a:
Updated by znz (Kazuhiro NISHIYAMA) about 3 years ago
Sundeep (Sundeep Agarwal) wrote:
- suggestion to add that numbered capturing groups is limited to
9
I don't think so.
Why did you think so?
irb -r irb/completion --simple-prompt >> /()()()()()()()()()(a)/ =~ "a" => 0 >> $10 => "a"
Updated by Sundeep (Sundeep Agarwal) about 3 years ago
oh, I didn't check with $10
. I'd tried with backreference. Any idea how to use \10
?
$ echo 'abcdefghij' | ruby -pe 'sub(/(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)/, ":\\9:")' :i: $ echo 'abcdefghij' | ruby -pe 'sub(/(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)/, ":\\10:")' :a0: $ echo 'abcdefghij' | ruby -pe 'sub(/(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)/){":#{$10}:"}' :j: