On Wed, Jun 7, 2017 at 10:03 PM, Rasmus Schultz <ras...@mindplay.dk> wrote:
> What do you think about adding another option to preg_match() to allow the > $offset parameter to be treated as the start anchor? > > The manual proposes to do this: > > $subject = "abcdef"; > $pattern = '/^def/'; > $offset = 3; > preg_match($pattern, substr($subject, $offset), $matches); > > In other words, use substr() to copy the entire remainder of the string. > > I just wrote a simple SQL parser tonight, and had to use this approach, > which (I imagine) must be pretty inefficient? > > I'd like to be able to do the following: > > $subject = "abcdef"; > $pattern = '/^def/'; > $offset = 3; > preg_match($pattern, $subject, $matches, PREG_ANCHOR_OFFSET, $offset); > > This new option would make the ^ anchor work from the given $offset, which > allows me to parse the entire $subject without copying anything. > > Thoughts? > You are looking for the \G anchor or the A modifier. Nikita