编写一个给定字符串的程序或函数,如果有的话,它将zalgo剥离。
扎尔戈
对于本文,zalgo被定义为以下Unicode范围内的任何字符:
- 组合变音标记(0300–036F)
- 合并变音符号扩展(1AB0–1AFF)
- 组合变音符号补充(1DC0–1DFF)
- 组合符号的变音符号(20D0–20FF)
- 合并半角线(FE20–FE2F)
https://zh.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
⚡⃤ -> ⚡
计分
因为这是代码高尔夫,所以以字节为单位的最短答案会获胜。
3
字符串是否保证仅包含ASCII和/或Zalgo?还是可能包含其他unicode?
—
DJMcMayhem
这些字符的合法使用情况如何?Zalgo几乎只有在那些字符以从未有过的方式彼此堆叠时才出现。
—
Draco18s
@DJMcMayhem输入字符串可能包含其他非ASCII字符,必须将其删除。
—
完全人类
@totallyhuman我在想一种更通用的方法:仅在“标准”字符后出现多个字符时才剥离。这是
—
Draco18s
a͕
不错,但a͕̰
被剥去a
。(现在,由于有了表情符号检测器,我想在表情符号上添加变音符号...🤔̘͕̑pfft,看起来很傻)
您应该添加一些具有非ASCII输出的测试用例。
—
xnor