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

Regex 正则表达式在openrefine中搜索和替换表情符号,regex,text,ascii,emoji,openrefine,Regex,Text,Ascii,Emoji,Openrefine,我正在处理一个包含大量数据的文件,其中也包含表情符号。我正在使用openrefine来清理数据,但是我找不到一条捷径来删除常见的表情符号,比如笑脸,它包含在很多数据中。我尝试了一些正则表达式,它对一些表情符号有效,但有些仍然存在。下面是我在搜索和替换中尝试的代码 "[\p{C}]|[\p{So}]|[\u20E3]" 构建一个正则表达式以匹配所有Unicode表情符号并非易事,但这里有一个Github repo,其中包含一个基于Unicode标准(以及该脚本的输出)构建它的脚本: 您可以尝试使

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

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

构建一个正则表达式以匹配所有Unicode表情符号并非易事,但这里有一个Github repo,其中包含一个基于Unicode标准(以及该脚本的输出)构建它的脚本:


您可以尝试使用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)
屏幕截图