What does ‘\K’ mean in this regex?

Since not all regex flavors support lookbehind, Perl introduced the \K. In general when you have:

a\Kb

When “b” is matched, \K tells the engine to pretend that the match attempt started at this position.

In your example, you want to pretend that the match attempt started at what appears after the "access_token":" text.

This example will better demonstrate the \K usage:

~$ echo 'hello world' | grep -oP 'hello \K(world)'
world
~$ echo 'hello world' | grep -oP 'hello (world)'
hello world

In addition, \K allows a variable-length look-behind:

$ echo foooooo bar | grep -oP "(?<=foo+) \Kbar"
grep: lookbehind assertion is not fixed length

$ echo foooooo bar | grep -oP "foo+ \Kbar"
bar

Leave a Comment