Regex用于从字符串中删除表情符号 [英] Regex to delete emojis from string
本文介绍了Regex用于从字符串中删除表情符号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个list of the Unicode emojis,我想去掉它们的表情包(即只想要整个第一部分和行尾的名字)。A样本行如下所示:
1F468 1F3FD 200D 2695 FE0F ; fully-qualified # 👨🏽⚕️ man health worker: medium skin tone
1F469 1F3FF 200D 2695 ; non-fully-qualified # 👩🏿⚕ woman health worker: dark skin tone
(为了简单起见,我删除了其中的一些空格)。我想要匹配的是[non-]fully-qualified
部分以及#
和表情符号,这样我就可以用sed
删除它们。我尝试了以下正则表达式
sed -e 's/<[on-]*fully-qualified># *.+?(?=[a-zA-Z]) //g'
尝试匹配单词[non-]fully-qualified
、#
符号,然后匹配您能找到的任何内容(非贪婪),直到第一个字母,并将其替换为空字符串。
我想要以下输出:
1F468 1F3FD 200D 2695 FE0F ; man health worker: medium skin tone
1F469 1F3FF 200D 2695 ; woman health worker: dark skin tone
我已经尝试了几个张贴的答案,但都无济于事,此外,我正在尝试匹配两个边界之间的模式,即我遇到了麻烦
编辑:我正在尝试在git for windows附带的git bash中运行该命令
推荐答案
我仍然不太确定,但这可能会奏效:
sed 's/;.*fully-qualifieds*#[^a-zA-Z]*/; /'
这将替换任何分号;
、任何字符.*
、"完全限定"文本、任意数量的空格、哈希标签以及非a-za-Z[^a-zA-Z]
的任何字符,并将所有这些替换为分号和空格。
要确保[a-zA-Z]
只捕获a to z和A to Z而不捕获任何其他字符(这似乎就是问题所在),该命令的一个快速解决方案可能是使用LC_ALL=C
:
LC_ALL=C sed 's/;.*fully-qualifieds*#[^a-zA-Z]*/; /' file
这篇关于Regex用于从字符串中删除表情符号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文