replace – Buscar y reemplazar simultáneamente

Pregunta:

¿Hay alguna forma de realizar una búsqueda y reemplazo simultáneos?

por ejemplo: quiero reemplazar todo 1 por 0 y simultáneamente todo 0 a 1

[
    [1, 1, 1, 1, 1, 0],
    [1, 1, 1, 1, 0, 1],
    [1, 1, 1, 0, 1, 1],
    [1, 1, 0, 1, 1, 1],
    [1, 0, 1, 1, 1, 1],
    [0, 1, 1, 1, 1, 1],
    [1, 1, 1, 1, 1, 0],
]

Respuesta:

Sí, puede hacerlo usando una expresión. Para este caso particular, puede usar la aritmética de Vim y calcular 1-x , que convertirá 0 en 1 y 1 en 0.

:s/\d/\=1-submatch(0)/g

Para un caso de reemplazo más general, puede usar un Dict para almacenar el mapeo de la coincidencia con la cadena de reemplazo.

Por ejemplo, para convertir los dígitos en números escritos:

:let repl = {"0": "zero", "1": "one"}
:s/\d/\=repl[submatch(0)]/g

Ver:

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım