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:

... y (hasta ahora) no soportado por:

  • .RED
  • awk
  • golpetazo
  • ÑU
  • UCI
  • Java
  • Javascript
  • Bloc de notas ++
  • C objetivo
  • POSIX
  • Pitón
  • Qt / QRegExp
  • sed
  • Tcl
  • empuje
  • XML
  • XPath

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

Ejemplo 1

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

Ejemplo 2



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow