Project

General

Profile

Actions

Bug #13082

closed

Regex match from position behavior with start of line/string special character

Added by akanet (Vincent Woo) about 7 years ago. Updated about 7 years ago.

Status:
Rejected
Assignee:
-
Target version:
-
ruby -v:
ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-darwin16]
[ruby-core:78888]

Description

Hello,

Apologies in advance if this question was addressed already, I could not find any information on it.

Regexp#match provides this behavior:

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

So, if you run:

/test/.match "a test", 2

it will return a match. This becomes an issue when you try to write a regex to match "if the pattern begins at the specified point in the string".

/^test/.match "a test", 2

Does not return a match. Using \A does not work either. It's an open question whether this should work, but I think it should. I would expect calling match with a position to treat the string passed in as essentially truncated up to that point.

I should add that the reason I want it to work this way is that queries like

/test/.match "a longer test", 2

will return a match. My real goal is to find if /test/ starts at position 2, so I do need the special line/string start character.

What do you think?

Cheers,
Vincent

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0