Na perlre
página de padrões estendidos, podemos ler sobre \K
:
Mantenha o que sobrou do
\K
, não o inclua em $&
Aqui está o exemplo prático usando GNU grep
(que na verdade mantém as coisas certas do \K
):
$ echo "foo bar buzz" | grep -Po "foo \Kbar buzz"
bar buzz
Existe alguma sequência oposta de \K
?
Por exemplo, para imprimir apenas bar
, como:
$ echo "foo bar buzz" | grep -Po "foo \Kbar\X buzz"
bar
Nesse caso, o lookahead de largura zero
(?=...)
faz o que você deseja :Requer alguns parênteses extras. Não há escape de um único caractere para lookahead do jeito que existe para
\K
.\K
é realmente apenas um lookbehind de largura zero para tudo até agora, então isso também é equivalente aque eu acho mais fácil de seguir pessoalmente.