gpt4 book ai didi

regex - 从 Haskell 中的字符串中删除所有表情符号

转载 作者:行者123 更新时间:2023-12-02 09:16:46 27 4
gpt4 key购买 nike

不久前我做了一个 Mastodon/Twitter <--> IRC 机器人。它运行得很好,但有人提示说,当人们在乳齿象上使用表情符号时(这似乎在某些用户名中经常发生......),它会破坏他的终端。

我想知道是否有办法在将它们发送到 IRC 之前从 ByteStrings 中删除它们(或者至少提供一个选项来这样做),谷歌搜索了一下我发现了这个:removing emojis from a string in Python

如果我理解正确的话,看起来\U0001F600-\U0001F64F 应该是表情符号范围,但我从来不热衷于正则表达式。有什么简单的方法可以将其转换为 Haskell 吗?我尝试阅读一些关于正则表达式的内容,但当我尝试时,我只得到“字符'U'处的字符串/字 rune 字中的词法错误”,我认为语法必须是Python的东西。

谢谢

最佳答案

Unicode 字符由单个反斜杠表示,后跟可选的 x(十六进制)、o(八进制),无十进制数字表示字符 [0]:

putStrLn "\x1f600" -- 😀

这里,\x 是 Unicode 中第一个表情符号字符的十六进制表示形式的前缀。

您现在可以使用 RegExp 删除表情符号,或者您可以简单地执行以下操作:

emojis = concat [['\x1f600'..'\x1F64F'],
['\x1f300'..'\x1f5ff'],
['\x1f680'..'\x1f6ff'],
['\x1f1e0'..'\x1f1ff']]
someString = "hello 🙋"
removeEmojis = filter (`notElem` emojis)

putStrLn . removeEmojis $ someString -- "hello "

[0] Haskell Language 2010: Lexical Structure#Character and String Literals

关于regex - 从 Haskell 中的字符串中删除所有表情符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46380952/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com