用于在 openrefine 中搜索和替换表情符号的正则表达式

Regex to search and replace emojis in openrefine

我正在处理一个包含大量数据的文件,其中还包括表情符号。我正在使用 openrefine 来清理数据,但我无法找到删除常见表情符号(如笑脸)的捷径,它包含在数据中很多我尝试了一些正则表达式,它适用于一些表情符号,但有些仍然存在。下面是我在搜索和替换中尝试的代码

"[\p{C}]|[\p{So}]|[\u20E3]"

构建正则表达式以匹配所有 Unicode 表情符号并非易事,但这里有一个 Github 带有脚本的存储库,可根据 Unicode 标准(以及该脚本的输出)构建它:

https://github.com/mathiasbynens/emoji-regex

你能用 Jython/Python 代替 Grel 试试这段代码吗?

import re

def remove_emojis(data):
    emoj = re.compile("["
        u"\U0001F600-\U0001F64F"  # emoticons
        u"\U0001F300-\U0001F5FF"  # symbols & pictographs
        u"\U0001F680-\U0001F6FF"  # transport & map symbols
        u"\U0001F1E0-\U0001F1FF"  # flags (iOS)
        u"\U00002500-\U00002BEF"  # chinese char
        u"\U00002702-\U000027B0"
        u"\U00002702-\U000027B0"
        u"\U000024C2-\U0001F251"
        u"\U0001f926-\U0001f937"
        u"\U00010000-\U0010ffff"
        u"\u2640-\u2642" 
        u"\u2600-\u2B55"
        u"\u200d"
        u"\u23cf"
        u"\u23e9"
        u"\u231a"
        u"\ufe0f"  # dingbats
        u"\u3030"
                      "]+", re.UNICODE)
    return re.sub(emoj, '', data)

return remove_emojis(value)

截图