Écrivez un programme ou une fonction qui, étant donné une chaîne, la supprimera de zalgo, le cas échéant.
Zalgo
Pour ce message, zalgo est défini comme n'importe quel caractère des plages Unicode suivantes:
- Combinaison de signes diacritiques (0300–036F)
- Combinaison des signes diacritiques étendue (1AB0–1AFF)
- Supplément pour combinaison de signes diacritiques (1DC0–1DFF)
- Combinaison de signes diacritiques pour les symboles (20D0–20FF)
- Combinaison de demi-repères (FE20 – FE2F)
https://en.wikipedia.org/wiki/Combining_character#Unicode_ranges
Contribution
- Peut être transmis via des arguments de ligne de commande, STDIN ou toute autre méthode d'entrée standard prise en charge par votre langue
- Sera une chaîne qui peut contenir ou non zalgo ou d'autres caractères non ASCII
Sortie
La sortie doit être une chaîne qui ne contient aucun zalgo.
Cas de test
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
⚡⃤ -> ⚡
Notation
Comme il s'agit de code-golf , la réponse la plus courte en octets l'emporte.
a͕
bien, mais sea͕̰
fait dépouillera
. (Aussi maintenant, grâce au détecteur d'emoji, je veux mettre des diacritiques sur les emoji ... 🤔̘͕̑ pfft, ça a l'air idiot)Réponses:
Rétine , 35 octets
Essayez-le en ligne!
Supprime simplement tous les caractères dans les plages données dans le défi de l'entrée. Le code est super illisible bien sûr, mais le code n'est pas conceptuellement différent de quelque chose comme
T`0-9A-Za-z
qui supprimerait tous les caractères alphanumériques.la source
Python 3 ,
7369 octets-4 octets grâce à L3viathan.
Je ne sais pas si participer à votre propre défi est ok ou pas mais ... J'ai volé l'expression régulière
et essentiellement l'idée aussi> <directement à partir des réponses JS et Retina.Essayez-le en ligne!
la source
`
.)JavaScript (ES6), 55 octets
la source
Japt , 37 octets
Essayez-le en ligne!
la source
PHP, 67 octets
plus court que l'écriture
Essayez-le en ligne!
PHP, 115 octets
Essayez-le en ligne!
PHP, 35 octets
Valable pour les cas de test donnés, il supprime toutes les marques
Essayez-le en ligne!
la source
Python 3,
127118 octetsJuste une réponse simple pour l'instant, voyons à quel point c'est golfable.
Journal des modifications:
la source
0or
n'est pas une chose, vous devez donc le réparer ou il augmenteraSyntaxError
.Bash + coreutils, 41
Supprime simplement les caractères dans les plages données.
Essayez-le en ligne .
la source
APL (Dyalog Unicode) , 43 octets
Essayez-le en ligne!
PCRE R eplace tous ceux qui ont rien
Version de 44 octets n'utilisant pas RegEx ou des littéraux de caractères étranges (et donc un seul octet par caractère):
Essayez-le en ligne!
⍳7
1… 7 (1 2 3 4 5 6 7)2 6~⍨
sauf 2 et 6 (1 3 4 5 7)16×
multiplier par 16 (16 48 64 80112)⍳¨
1… chacun (1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16, 1 2 3…,… 110 111 112)+
ajouter un décalage à chaque liste (65056 65057 65058…,… 877 878 879)∊
enrôler (aplatir)⎕UCS
convertir en caractère Unicode correspondant⍞~
obtenir la saisie de texte et supprimer tous ces caractèresla source
Gelée , 32 octets
Essayez-le en ligne!
Explication
la source
b65072
que je pense que c'est? : oJava 8, 57 octets
Essayez-le ici.
la source
05AB1E , 32 octets
Essayez-le en ligne!
la source