Escriba un programa o función que, dada una cadena, lo quitará de zalgo, si existe alguno.
Zalgo
Para esta publicación, zalgo se define como cualquier personaje de los siguientes rangos Unicode:
- Combinación de marcas diacríticas (0300–036F)
- Combinación de marcas diacríticas extendidas (1AB0–1AFF)
- Suplemento de combinación de marcas diacríticas (1DC0–1DFF)
- Combinación de marcas diacríticas para símbolos (20D0–20FF)
- Combinación de medias marcas (FE20 – FE2F)
https://en.wikipedia.org/wiki/Combining_character#Unicode_ranges
Entrada
- Se puede pasar a través de argumentos de línea de comando, STDIN o cualquier otro método estándar de entrada compatible con su idioma
- Será una cadena que puede contener o no zalgo u otros caracteres no ASCII
Salida
La salida debe ser una cadena que no contenga ningún zalgo.
Casos de prueba
Input -> Output
HE̸͚ͦ ̓C͉Õ̗͕M͙͌͆E̋̃ͥT̠͕͌H̤̯͛ -> HE COMETH
C͉̊od̓e͔͝ ̆G̀̑ͧo͜l͔̯͊f͉͍ -> Code Golf
aaaͧͩa͕̰ȃ̘͕aa̚͢͝aa͗̿͢ -> aaaaaaaaa
ññ -> ñn
⚡⃤ -> ⚡
Tanteo
Como se trata de código de golf , gana la respuesta más corta en bytes.
a͕
bien, peroa͕̰
se desnudaa
. (También ahora, gracias al detector de emojis, quiero poner diacríticos en emoji ... 🤔̘͕̑ pfft, eso se ve tonto)Respuestas:
Retina , 35 bytes
Pruébalo en línea!
Simplemente elimina todos los caracteres en los rangos dados en el desafío de la entrada. El código es súper ilegible, por supuesto, pero conceptualmente no es diferente de algo como
T`0-9A-Za-z
lo que eliminaría todos los caracteres alfanuméricos.fuente
Python 3 ,
7369 bytes-4 bytes gracias a L3viathan.
No estoy seguro de si participar en su propio desafío está bien o no, pero ... Robó la expresión regular
y esencialmente también la idea> <directamente de las respuestas de JS y Retina.Pruébalo en línea!
fuente
`
.)JavaScript (ES6), 55 bytes
fuente
Japt , 37 bytes
Pruébalo en línea!
fuente
PHP, 67 bytes
más corto como el escribir
Pruébalo en línea!
PHP, 115 bytes
Pruébalo en línea!
PHP, 35 bytes
Válido para los Casos de prueba dados, elimina todas las Marcas
Pruébalo en línea!
fuente
Pitón 3,
127118 bytesSolo una respuesta directa por ahora, veamos cuán golfable es.
Registro de cambios:
fuente
0or
no es una cosa, así que tienes que arreglarlo o aumentaráSyntaxError
.Bash + coreutils, 41
Simplemente elimina los caracteres en los rangos dados.
Pruébalo en línea .
fuente
APL (Dyalog Unicode) , 43 bytes
Pruébalo en línea!
PCRE R eplace todos aquellos con nada
Versión de 44 bytes que no usa RegEx o literales de caracteres extraños (y, por lo tanto, un solo byte por carácter):
Pruébalo en línea!
⍳7
1… 7 (1 2 3 4 5 6 7)2 6~⍨
excepto 2 y 6 (1 3 4 5 7)16×
multiplicar por 16 (16 48 64 80112)⍳¨
1… cada uno (1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16, 1 2 3…,… 110 111 112)+
agregar desplazamiento a cada lista (65056 65057 65058…,… 877 878 879)∊
alistarse (aplanar)⎕UCS
convertir al carácter Unicode correspondiente⍞~
obtener entrada de texto y eliminar todos esos caracteresfuente
Jalea , 32 bytes
Pruébalo en línea!
Explicación
fuente
b65072
lo que creo que es? : oJava 8, 57 bytes
Pruébalo aquí.
fuente
05AB1E , 32 bytes
Pruébalo en línea!
fuente