Regex用于从字符串中删除表情符号 [英] Regex to delete emojis from string

查看:0
本文介绍了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 zA to Z而不捕获任何其他字符(这似乎就是问题所在),该命令的一个快速解决方案可能是使用LC_ALL=C

LC_ALL=C sed 's/;.*fully-qualifieds*#[^a-zA-Z]*/; /' file

这篇关于Regex用于从字符串中删除表情符号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆