diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | doc/regexp.rdoc | 14 |
2 files changed, 17 insertions, 1 deletions
@@ -1,3 +1,7 @@ +Fri Jan 8 22:30:06 2016 Akinori MUSHA <knu@iDaemons.org> + + * doc/regexp.rdoc: [DOC] Elaborate on the \G anchor. [ci skip] + Fri Jan 8 19:49:27 2016 Koichi Sasada <ko1@atdot.net> * gc.c: remove heap_page::body. Instead of this field, diff --git a/doc/regexp.rdoc b/doc/regexp.rdoc index 02a5f300ee..4722f2e7f5 100644 --- a/doc/regexp.rdoc +++ b/doc/regexp.rdoc @@ -470,7 +470,19 @@ characters, <i>anchoring</i> the match to a specific position. * <tt>\Z</tt> - Matches end of string. If string ends with a newline, it matches just before newline * <tt>\z</tt> - Matches end of string -* <tt>\G</tt> - Matches point where last match finished +* <tt>\G</tt> - Matches first matching position: + + In methods like <tt>String#gsub</tt> and <tt>String#scan</tt>, it changes on each iteration. + It initially matches the beginning of subject, and in each following iteration it matches where the last match finished. + + " a b c".gsub(/ /, '_') #=> "____a_b_c" + " a b c".gsub(/\G /, '_') #=> "____a b c" + + In methods like <tt>Regexp#match</tt> and <tt>String#match</tt> that take an (optional) offset, it matches where the search begins. + + "hello, world".match(/,/, 3) #=> #<MatchData ","> + "hello, world".match(/\G,/, 3) #=> nil + * <tt>\b</tt> - Matches word boundaries when outside brackets; backspace (0x08) when inside brackets * <tt>\B</tt> - Matches non-word boundaries |