【发布时间】:2018-01-28 17:35:06
【问题描述】:
我有一个list of the Unicode emojis,我想从他们身上去掉表情符号(即只想要整个第一部分和行尾的名字)。示例行如下所示:
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/\(.*;\).*#[^a-zA-Z]*\(.*\)/\1 \2/' -
您的 sed 脚本似乎正在尝试使用 PCRE,但没有 sed 版本支持 PCRE。您正在运行哪个 sed 版本 - GNU 或 OSX 还是其他?
-
@archimiro 似乎在做某事,但不会在所有情况下都删除整个事情。