Напишите программу или функцию, которая, учитывая строку, лишит ее zalgo, если таковая существует.
Zalgo
Для этого поста zalgo определяется как любой символ из следующих диапазонов Unicode:
- Объединение диакритических знаков (0300–036F)
- Расширенное объединение диакритических знаков (1AB0–1AFF)
- Объединение дополнения к диакритическим знакам (1DC0–1DFF)
- Объединение диакритических знаков для символов (20D0–20FF)
- Сочетание полумарк (FE20 – FE2F)
https://en.wikipedia.org/wiki/Combining_character#Unicode_ranges
вход
- Может передаваться через аргументы командной строки, STDIN или любым другим стандартным методом ввода, поддерживаемым вашим языком
- Будет ли строка, которая может содержать или не содержать zalgo или другие символы не ASCII
Выход
Вывод должен быть строкой, которая не содержит zalgo.
Тестовые случаи
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
⚡⃤ -> ⚡
счет
Поскольку это код-гольф , выигрывает кратчайший ответ в байтах.
a͕
нормально, ноa͕̰
его раздеваютa
. (Также теперь, благодаря детектору смайликов, я хочу придать смайликам диакритические знаки ... 🤔̘͕̑ пфф, это выглядит глупо)Ответы:
Сетчатка , 35 байт
Попробуйте онлайн!
Просто удаляет все символы в диапазонах, указанных в задании, из входных данных. Конечно, код супер нечитабелен, но концептуально он ничем не отличается от того, что
T`0-9A-Za-z
удаляет все буквенно-цифровые символы.источник
Python 3 ,
7369 байт-4 байта благодаря L3viathan.
Не уверен, что участие в вашем собственном соревновании - это нормально или нет, но ... Украл регулярное выражение
и, в сущности, идею> <прямо из ответов JS и Retina.Попробуйте онлайн!
источник
`
.)JavaScript (ES6), 55 байт
источник
Japt , 37 байт
Попробуйте онлайн!
источник
PHP, 67 байт
короче как выписать
Попробуйте онлайн!
PHP, 115 байт
Попробуйте онлайн!
PHP, 35 байт
Действительно для заданных тестовых случаев, удаляет все метки
Попробуйте онлайн!
источник
Python 3,
127118 байтПросто простой ответ, давайте посмотрим, насколько это возможно.
Changelog:
источник
0or
это не вещь, поэтому вы должны исправить это, или он будет поднятSyntaxError
.Bash + coreutils, 41
Просто удаляет символы в заданных диапазонах.
Попробуйте онлайн .
источник
APL (Dyalog Unicode) , 43 байта
Попробуйте онлайн!
PCRE R заменить всех тех, кто ничего
44-байтовая версия без RegEx или литералов странных символов (и, следовательно, одного байта на символ):
Попробуйте онлайн!
⍳7
1… 7 (1 2 3 4 5 6 7)2 6~⍨
кроме 2 и 6 (1 3 4 5 7)16×
умножить на 16 (16 48 64 80 112)⍳¨
1… каждый (1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16, 1 2 3…,… 110 111 112)+
добавить смещение к каждому списку (65056 65057 65058…,… 877 878 879)∊
подключить⎕UCS
преобразовать в соответствующий символ Unicode⍞~
получить текстовый ввод и удалить все такие символыисточник
Желе , 32 байта
Попробуйте онлайн!
объяснение
источник
b65072
что я думаю? : oJava 8, 57 байт
Попробуй это здесь.
источник
05AB1E , 32 байта
Попробуйте онлайн!
источник