Regular Expressions
Restablecer partido: \ K
Buscar..
Observaciones
Regex101 define la funcionalidad \ K como:
\K
restablece el punto de partida de la coincidencia informada. Cualquier carácter consumido previamente ya no se incluye en la partida final
La secuencia de escape \K
es compatible con varios motores, idiomas o herramientas, tales como:
- impulsar (desde ???)
- grep -P ← usa PCRE
- Oniguruma ( desde 5.13.3 )
- PCRE ( desde 7.2 )
- Perl ( desde la 5.10.0 )
- PHP ( desde 5.2.4 )
- Ruby (desde 2.0.0)
... y (hasta ahora) no soportado por:
Buscar y reemplazar utilizando el operador \ K
Dado el texto:
foo: bar
Me gustaría reemplazar cualquier cosa después de "foo:" con "baz", pero quiero mantener "foo:". Esto se podría hacer con un grupo de captura como este:
s/(foo: ).*/$1baz/
Que resulta en el texto:
foo: baz
o podríamos usar \K
, que "olvida" todo lo que ha igualado previamente, con un patrón como este:
s/foo: \K.*/baz/
La expresión regular coincide con "foo:" y luego se encuentra con la \K
, los caracteres coincidentes previamente se dan por sentados y la expresión regular los deja, lo que significa que solo la cadena que coincide con .*
Se reemplazará por "baz", lo que da como resultado el texto:
foo: baz