Schreiben Sie ein Programm oder eine Funktion, die bei gegebener Zeichenfolge zalgo entfernt, falls vorhanden.
Zalgo
In diesem Beitrag wird Zalgo als ein beliebiges Zeichen aus den folgenden Unicode-Bereichen definiert:
- Kombinieren diakritischer Zeichen (0300–036F)
- Erweiterte Kombination diakritischer Zeichen (1AB0–1AFF)
- Ergänzung zur Kombination diakritischer Zeichen (1DC0–1DFF)
- Kombinieren diakritischer Zeichen für Symbole (20D0–20FF)
- Kombinieren von Halbwerten (FE20 – FE2F)
https://en.wikipedia.org/wiki/Combining_character#Unicode_ranges
Eingang
- Kann über Befehlszeilenargumente, STDIN oder eine andere von Ihrer Sprache unterstützte Standardeingabemethode übergeben werden
- Wird eine Zeichenfolge sein, die möglicherweise zalgo oder andere Nicht-ASCII-Zeichen enthält oder nicht
Ausgabe
Die Ausgabe sollte eine Zeichenfolge sein, die kein Zalgo enthält.
Testfälle
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
⚡⃤ -> ⚡
Wertung
Da es sich um Code-Golf , kürzeste Antwort in Bytes gewinnt.
a͕
in Ordnung, wird abera͕̰
ausgezogena
. (Auch jetzt möchte ich dank des Emoji-Detektors Diakritika auf Emoji setzen ... 🤔̘͕̑ pfft, das sieht albern aus)Antworten:
Retina , 35 Bytes
Probieren Sie es online!
Entfernt einfach alle Zeichen in den in der Abfrage angegebenen Bereichen aus der Eingabe. Der Code ist natürlich super unlesbar, aber der Code unterscheidet sich konzeptionell nicht von etwas, bei
T`0-9A-Za-z
dem alle alphanumerischen Zeichen gelöscht würden.quelle
Python 3 ,
7369 Bytes-4 Bytes dank L3viathan.
Ich bin mir nicht sicher, ob es in Ordnung ist, an Ihrer eigenen Herausforderung teilzunehmen, oder nicht, aber ... Ich habe den Regex
und im Wesentlichen auch die Ideegestohlen> <direkt aus den Antworten von JS und Retina.Probieren Sie es online!
quelle
`
.)JavaScript (ES6), 55 Byte
quelle
Japt , 37 Bytes
Probieren Sie es online!
quelle
PHP, 67 Bytes
kürzer als das ausschreiben
Probieren Sie es online!
PHP, 115 Bytes
Probieren Sie es online!
PHP, 35 Bytes
Gültig für die angegebenen Testfälle entfernt es alle Markierungen
Probieren Sie es online!
quelle
Python 3,
127118 BytesNur eine einfache Antwort für den Moment, lassen Sie uns sehen, wie gut es ist, Golf zu spielen.
Änderungsprotokoll:
quelle
0or
ist keine Sache, also musst du es reparieren oder es wird erhöhtSyntaxError
.Bash + Coreutils, 41
Entfernen Sie einfach die Zeichen in den angegebenen Bereichen.
Probieren Sie es online aus .
quelle
APL (Dyalog Unicode) , 43 Byte
Probieren Sie es online!
PCRE R eplace alle , die mit nichts
44-Byte-Version ohne RegEx oder fremde Zeichenliterale (und damit Einzelbyte pro Zeichen):
Probieren Sie es online!
⍳7
1… 7 (1 2 3 4 5 6 7)2 6~⍨
außer 2 und 6 (1 3 4 5 7)16×
multiplizieren mit 16 (16 48 64 80 112)⍳¨
1… je (1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16, 1 2 3…,… 110 111 112)+
Offset zu jeder Liste hinzufügen (65056 65057 65058…,… 877 878 879)∊
eintreten (abflachen)⎕UCS
in das entsprechende Unicode-Zeichen konvertieren⍞~
Holen Sie sich Texteingabe und entfernen Sie alle diese Zeichenquelle
Gelee , 32 Bytes
Probieren Sie es online!
Erläuterung
quelle
b65072
was ich denke? : oJava 8, 57 Bytes
Probieren Sie es hier aus.
quelle
05AB1E , 32 Bytes
Probieren Sie es online!
quelle