gpt4 book ai didi

unicode - linux中表情符号的grep

转载 作者:行者123 更新时间:2023-12-04 11:43:03 28 4
gpt4 key购买 nike

我正在尝试对包含多个非 ASCII 字符的 token 列表进行 grep。我只想匹配表情符号,其他字符如 ð 或 ñ 都可以。表情符号的 unicode 范围似乎是 U+1F600-U+1F1FF 但当我使用 grep 搜索它时,会发生这种情况:

grep -P "[\x1F6-\x1F1]" contact_names.tokens                                                                                                                                                                                                                                
grep: range out of order in character class

https://unicode.org/emoji/charts/full-emoji-list.html#1f3f4_e0067_e0062_e0077_e006c_e0073_e007f

最佳答案

您需要指定具有完整值的代码点(不是 1F6 而是 1F600 )并用花括号括起来。此外,第一个值必须小于最后一个值。
所以正则表达式应该是 "[\x{1F1FF}-\x{1F600}]" .

然而,表情符号的 unicode 范围比您想象的要复杂。您引用的页面未按代码点对字符进行排序,并且表情符号放置在许多块中。如果你想涵盖几乎所有的表情符号:

grep -P "[\x{1f300}-\x{1f5ff}\x{1f900}-\x{1f9ff}\x{1f600}-\x{1f64f}\x{1f680}-\x{1f6ff}\x{2600}-\x{26ff}\x{2700}-\x{27bf}\x{1f1e6}-\x{1f1ff}\x{1f191}-\x{1f251}\x{1f004}\x{1f0cf}\x{1f170}-\x{1f171}\x{1f17e}-\x{1f17f}\x{1f18e}\x{3030}\x{2b50}\x{2b55}\x{2934}-\x{2935}\x{2b05}-\x{2b07}\x{2b1b}-\x{2b1c}\x{3297}\x{3299}\x{303d}\x{00a9}\x{00ae}\x{2122}\x{23f3}\x{24c2}\x{23e9}-\x{23ef}\x{25b6}\x{23f8}-\x{23fa}]"  contact_names.tokens

(范围是从 Suhail Gupta's answer 借用类似问题)

如果您需要允许/禁止特定的表情符号块,请参阅 sequence data on unicode.org . List of emoji on Wikipedia还会在有序表中显示字符,但它可能不会列出最新的字符。

关于unicode - linux中表情符号的grep,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52266347/

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