Tarea: Quitar Espacios
Código:
A1: Establecer variable [ Nombre:%frase A:Hola y muy yuenas nochesy y tardes tengan y yustedes. Recurse Variables:Apagado Calcular:Apagado Añadir:Apagado ]
A2: Buscar y Reemplazar Contenido de Variable [ Variable:%frase Buscar:(?<! y) (?!y ) Ignorar Caso:Apagado Multilínea:Apagado Una sola coincidencia:Apagado Almacenar Coincidencias En: Reemplazar Coincidencias:Encendido Reemplazar Con: ]
A3: Flash [ Texto:%frase Largo:Apagado ]
Las palabras mal escritas son intencionadas para ver si funciona en varios casos. Espero que no se me haya escapado algún otro.
Para escribir expresiones regex solo tenemos de pensar qué buscar:
Quiero buscar un espacio que no esté seguido de 'y' junto a un 'espacio', y un espacio que no le anteceda un 'espacio' seguido de una 'y'.
Si tomamos "Hola y muy" vemos que se dan precisamente estas dos situaciones y no encontrará nada.
?< significa lookbehind (mirar detrás)
! significa negación (lo contrario)
?= significa lookahead (mirar delante)
Los look behind/ahead se llaman lookaround (mirar alrededor) y no consumen caracteres.
Significa que lo que encuentren no será incluido en el resultado.
En el medio de la expresión hay un espacio que es lo que estoy buscando.
Estoy negando lo que busco antes y después.
El símbolo de lookbehind se mantiene y se añade la negación pero en el lookahead se cambia el = por la negación.