Regex 从Haskell中的字符串中删除所有表情符号
不久前我制作了一个乳齿象/推特IRC机器人。它一直工作得很好,但有人抱怨说,当人们在mastodon上使用表情符号时(这在一些用户名中似乎经常发生),它会破坏他的终端 我想知道在发送到IRC之前是否有办法将这些内容从ByTestRing中删除(或者至少提供一个选项),通过谷歌搜索我发现: 如果我理解正确,看起来\U0001F600-\U0001F64F应该是表情符号的范围,但我从来没有使用过regex。有什么简单的方法可以把它翻译成Haskell吗?我试着读了一些关于正则表达式的内容,但我只得到了“字符串中的词汇错误/字符在字符'U'处的文字错误”,当我尝试时,我假设语法一定是python的东西Regex 从Haskell中的字符串中删除所有表情符号,regex,haskell,unicode,Regex,Haskell,Unicode,不久前我制作了一个乳齿象/推特IRC机器人。它一直工作得很好,但有人抱怨说,当人们在mastodon上使用表情符号时(这在一些用户名中似乎经常发生),它会破坏他的终端 我想知道在发送到IRC之前是否有办法将这些内容从ByTestRing中删除(或者至少提供一个选项),通过谷歌搜索我发现: 如果我理解正确,看起来\U0001F600-\U0001F64F应该是表情符号的范围,但我从来没有使用过regex。有什么简单的方法可以把它翻译成Haskell吗?我试着读了一些关于正则表达式的内容,但我只得到
感谢您不是表情符号或unicode专家,但这似乎很有效:
isEmoji::Char->Bool
isEmoji c=让uc=来自枚举c
在uc>=0x1F600&&uc中,Unicode字符由一个反斜杠表示,对于十六进制,后跟可选的x
,对于八进制,后跟可选的o
,对于表示字符[0]的十进制数,后跟零:
putStrLn“\x1f600”--看起来效果不错!非常感谢,实际上比我想象的简单多了。一个简单的>=不需要来自enum
,只需isEmoji c=c>='\x1f600'&&c范围是0x1f000..0x1f9ff:谢谢,这确实有效!我选择了另一个答案,因为我认为它更轻,但两者都达到了我想要的