Project

General

Profile

Actions

Bug #18471

closed

Regex#match(re, position) with start of a string anchors ^ and \A

Added by vlazar (Vlad Zarakovsky) about 2 years ago. Updated about 2 years ago.

Status:
Rejected
Assignee:
-
Target version:
-
[ruby-core:107045]

Description

Found this. Is it a bug in Regex#match(re, position)?

From Regex#match docs

If the second parameter is present, it specifies the position in the string to begin the search.

str = "hello world"
/^world/.match(str, 6) # => nil
/\Aworld/.match(str, 6) # => nil

I would expect “specifies the position in the string to begin the search” would mean staring from position 6 in “hello world” should be equivalent to staring with position 0 in a string “world” and thus ^ or \A should match in this case too.

Consider another example. If I use the same with StringScanner#scan it works as I would expect:

require "strscan"

str = "hello world"
scanner = StringScanner.new(str)
scanner.pos = 6
scanner.scan /^world/ # => "world"
scanner.pos = 6
scanner.scan /\Aworld/ # => "world"

To me these 2 cases (at least looking into current API docs) should work the same and having a difference in behavior looks like a bug to me.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0