如何在golang中使用正则表达式替换字符串中的表情符号

Posted

技术标签:

【中文标题】如何在golang中使用正则表达式替换字符串中的表情符号【英文标题】:How to replace emoji characters in string using regex in golang 【发布时间】:2022-01-04 21:42:13 【问题描述】:

我想用golang中的正则表达式替换字符串中的所有表情符号。

像这样:

这是一个很好的笑话???????????? ??? -> 开个玩笑[e][e][e] [e]

【问题讨论】:

您希望支持哪种表情符号?你知道 Unicode 范围吗?试试this one @WiktorStribiżew 特别感谢。这就是我想要的, 【参考方案1】:

您似乎想要匹配一组特定的表情符号。

使用

package main

import (
    "fmt"
    "regexp"
)

func main() 
    var emojiRx = regexp.MustCompile(`[\x1F600-\x1F6FF|[\x2600-\x26FF]`)
    var s = emojiRx.ReplaceAllString("Thats a nice joke ??? ?", `[e]`)
    fmt.Println(s)    

请参阅Go demo。

注意:

[\x1F600-\x1F64F] - 匹配表情符号 [\x1F680-\x1F6FF] - 匹配运输表情符号等。

匹配Emoji 14.0 Standard 中列出的所有表情符号的正则表达式,您可以使用

emojiRx := regexp.MustCompile(`[#*0-9]\xFE0F?\x20E3|©\xFE0F?|[®\x203C\x2049\x2122\x2139\x2194-\x2199\x21A9\x21AA]\xFE0F?|[\x231A\x231B]|[\x2328\x23CF]\xFE0F?|[\x23E9-\x23EC]|[\x23ED-\x23EF]\xFE0F?|\x23F0|[\x23F1\x23F2]\xFE0F?|\x23F3|[\x23F8-\x23FA\x24C2\x25AA\x25AB\x25B6\x25C0\x25FB\x25FC]\xFE0F?|[\x25FD\x25FE]|[\x2600-\x2604\x260E\x2611]\xFE0F?|[\x2614\x2615]|\x2618\xFE0F?|\x261D[\xFE0F\x1F3FB-\x1F3FF]?|[\x2620\x2622\x2623\x2626\x262A\x262E\x262F\x2638-\x263A\x2640\x2642]\xFE0F?|[\x2648-\x2653]|[\x265F\x2660\x2663\x2665\x2666\x2668\x267B\x267E]\xFE0F?|\x267F|\x2692\xFE0F?|\x2693|[\x2694-\x2697\x2699\x269B\x269C\x26A0]\xFE0F?|\x26A1|\x26A7\xFE0F?|[\x26AA\x26AB]|[\x26B0\x26B1]\xFE0F?|[\x26BD\x26BE\x26C4\x26C5]|\x26C8\xFE0F?|\x26CE|[\x26CF\x26D1\x26D3]\xFE0F?|\x26D4|\x26E9\xFE0F?|\x26EA|[\x26F0\x26F1]\xFE0F?|[\x26F2\x26F3]|\x26F4\xFE0F?|\x26F5|[\x26F7\x26F8]\xFE0F?|\x26F9(?:\x200D[\x2640\x2642]\xFE0F?|[\xFE0F\x1F3FB-\x1F3FF](?:\x200D[\x2640\x2642]\xFE0F?)?)?|[\x26FA\x26FD]|\x2702\xFE0F?|\x2705|[\x2708\x2709]\xFE0F?|[\x270A\x270B][\x1F3FB-\x1F3FF]?|[\x270C\x270D][\xFE0F\x1F3FB-\x1F3FF]?|\x270F\xFE0F?|[\x2712\x2714\x2716\x271D\x2721]\xFE0F?|\x2728|[\x2733\x2734\x2744\x2747]\xFE0F?|[\x274C\x274E\x2753-\x2755\x2757]|\x2763\xFE0F?|\x2764(?:\x200D[\x1F525\x1FA79]|\xFE0F(?:\x200D[\x1F525\x1FA79])?)?|[\x2795-\x2797]|\x27A1\xFE0F?|[\x27B0\x27BF]|[\x2934\x2935\x2B05-\x2B07]\xFE0F?|[\x2B1B\x2B1C\x2B50\x2B55]|[\x3030\x303D\x3297\x3299]\xFE0F?|[\x1F004\x1F0CF]|[\x1F170\x1F171\x1F17E\x1F17F]\xFE0F?|[\x1F18E\x1F191-\x1F19A]|\x1F1E6[\x1F1E8-\x1F1EC\x1F1EE\x1F1F1\x1F1F2\x1F1F4\x1F1F6-\x1F1FA\x1F1FC\x1F1FD\x1F1FF]|\x1F1E7[\x1F1E6\x1F1E7\x1F1E9-\x1F1EF\x1F1F1-\x1F1F4\x1F1F6-\x1F1F9\x1F1FB\x1F1FC\x1F1FE\x1F1FF]|\x1F1E8[\x1F1E6\x1F1E8\x1F1E9\x1F1EB-\x1F1EE\x1F1F0-\x1F1F5\x1F1F7\x1F1FA-\x1F1FF]|\x1F1E9[\x1F1EA\x1F1EC\x1F1EF\x1F1F0\x1F1F2\x1F1F4\x1F1FF]|\x1F1EA[\x1F1E6\x1F1E8\x1F1EA\x1F1EC\x1F1ED\x1F1F7-\x1F1FA]|\x1F1EB[\x1F1EE-\x1F1F0\x1F1F2\x1F1F4\x1F1F7]|\x1F1EC[\x1F1E6\x1F1E7\x1F1E9-\x1F1EE\x1F1F1-\x1F1F3\x1F1F5-\x1F1FA\x1F1FC\x1F1FE]|\x1F1ED[\x1F1F0\x1F1F2\x1F1F3\x1F1F7\x1F1F9\x1F1FA]|\x1F1EE[\x1F1E8-\x1F1EA\x1F1F1-\x1F1F4\x1F1F6-\x1F1F9]|\x1F1EF[\x1F1EA\x1F1F2\x1F1F4\x1F1F5]|\x1F1F0[\x1F1EA\x1F1EC-\x1F1EE\x1F1F2\x1F1F3\x1F1F5\x1F1F7\x1F1FC\x1F1FE\x1F1FF]|\x1F1F1[\x1F1E6-\x1F1E8\x1F1EE\x1F1F0\x1F1F7-\x1F1FB\x1F1FE]|\x1F1F2[\x1F1E6\x1F1E8-\x1F1ED\x1F1F0-\x1F1FF]|\x1F1F3[\x1F1E6\x1F1E8\x1F1EA-\x1F1EC\x1F1EE\x1F1F1\x1F1F4\x1F1F5\x1F1F7\x1F1FA\x1F1FF]|\x1F1F4\x1F1F2|\x1F1F5[\x1F1E6\x1F1EA-\x1F1ED\x1F1F0-\x1F1F3\x1F1F7-\x1F1F9\x1F1FC\x1F1FE]|\x1F1F6\x1F1E6|\x1F1F7[\x1F1EA\x1F1F4\x1F1F8\x1F1FA\x1F1FC]|\x1F1F8[\x1F1E6-\x1F1EA\x1F1EC-\x1F1F4\x1F1F7-\x1F1F9\x1F1FB\x1F1FD-\x1F1FF]|\x1F1F9[\x1F1E6\x1F1E8\x1F1E9\x1F1EB-\x1F1ED\x1F1EF-\x1F1F4\x1F1F7\x1F1F9\x1F1FB\x1F1FC\x1F1FF]|\x1F1FA[\x1F1E6\x1F1EC\x1F1F2\x1F1F3\x1F1F8\x1F1FE\x1F1FF]|\x1F1FB[\x1F1E6\x1F1E8\x1F1EA\x1F1EC\x1F1EE\x1F1F3\x1F1FA]|\x1F1FC[\x1F1EB\x1F1F8]|\x1F1FD\x1F1F0|\x1F1FE[\x1F1EA\x1F1F9]|\x1F1FF[\x1F1E6\x1F1F2\x1F1FC]|\x1F201|\x1F202\xFE0F?|[\x1F21A\x1F22F\x1F232-\x1F236]|\x1F237\xFE0F?|[\x1F238-\x1F23A\x1F250\x1F251\x1F300-\x1F320]|[\x1F321\x1F324-\x1F32C]\xFE0F?|[\x1F32D-\x1F335]|\x1F336\xFE0F?|[\x1F337-\x1F37C]|\x1F37D\xFE0F?|[\x1F37E-\x1F384]|\x1F385[\x1F3FB-\x1F3FF]?|[\x1F386-\x1F393]|[\x1F396\x1F397\x1F399-\x1F39B\x1F39E\x1F39F]\xFE0F?|[\x1F3A0-\x1F3C1]|\x1F3C2[\x1F3FB-\x1F3FF]?|[\x1F3C3\x1F3C4](?:\x200D[\x2640\x2642]\xFE0F?|[\x1F3FB-\x1F3FF](?:\x200D[\x2640\x2642]\xFE0F?)?)?|[\x1F3C5\x1F3C6]|\x1F3C7[\x1F3FB-\x1F3FF]?|[\x1F3C8\x1F3C9]|\x1F3CA(?:\x200D[\x2640\x2642]\xFE0F?|[\x1F3FB-\x1F3FF](?:\x200D[\x2640\x2642]\xFE0F?)?)?|[\x1F3CB\x1F3CC](?:\x200D[\x2640\x2642]\xFE0F?|[\xFE0F\x1F3FB-\x1F3FF](?:\x200D[\x2640\x2642]\xFE0F?)?)?|[\x1F3CD\x1F3CE]\xFE0F?|[\x1F3CF-\x1F3D3]|[\x1F3D4-\x1F3DF]\xFE0F?|[\x1F3E0-\x1F3F0]|\x1F3F3(?:\x200D(?:\x26A7\xFE0F?|\x1F308)|\xFE0F(?:\x200D(?:\x26A7\xFE0F?|\x1F308))?)?|\x1F3F4(?:\x200D\x2620\xFE0F?|\xE0067\xE0062(?:\xE0065\xE006E\xE0067|\xE0073\xE0063\xE0074|\xE0077\xE006C\xE0073)\xE007F)?|[\x1F3F5\x1F3F7]\xFE0F?|[\x1F3F8-\x1F407]|\x1F408(?:\x200D\x2B1B)?|[\x1F409-\x1F414]|\x1F415(?:\x200D\x1F9BA)?|[\x1F416-\x1F43A]|\x1F43B(?:\x200D\x2744\xFE0F?)?|[\x1F43C-\x1F43E]|\x1F43F\xFE0F?|\x1F440|\x1F441(?:\x200D\x1F5E8\xFE0F?|\xFE0F(?:\x200D\x1F5E8\xFE0F?)?)?|[\x1F442\x1F443][\x1F3FB-\x1F3FF]?|[\x1F444\x1F445]|[\x1F446-\x1F450][\x1F3FB-\x1F3FF]?|[\x1F451-\x1F465]|[\x1F466\x1F467][\x1F3FB-\x1F3FF]?|\x1F468(?:\x200D(?:[\x2695\x2696\x2708]\xFE0F?|\x2764\xFE0F?\x200D(?:\x1F48B\x200D)?\x1F468|[\x1F33E\x1F373\x1F37C\x1F393\x1F3A4\x1F3A8\x1F3EB\x1F3ED]|\x1F466(?:\x200D\x1F466)?|\x1F467(?:\x200D[\x1F466\x1F467])?|[\x1F468\x1F469]\x200D(?:\x1F466(?:\x200D\x1F466)?|\x1F467(?:\x200D[\x1F466\x1F467])?)|[\x1F4BB\x1F4BC\x1F527\x1F52C\x1F680\x1F692\x1F9AF-\x1F9B3\x1F9BC\x1F9BD])|\x1F3FB(?:\x200D(?:[\x2695\x2696\x2708]\xFE0F?|\x2764\xFE0F?\x200D(?:\x1F48B\x200D)?\x1F468[\x1F3FB-\x1F3FF]|[\x1F33E\x1F373\x1F37C\x1F393\x1F3A4\x1F3A8\x1F3EB\x1F3ED\x1F4BB\x1F4BC\x1F527\x1F52C\x1F680\x1F692]|\x1F91D\x200D\x1F468[\x1F3FC-\x1F3FF]|[\x1F9AF-\x1F9B3\x1F9BC\x1F9BD]))?|\x1F3FC(?:\x200D(?:[\x2695\x2696\x2708]\xFE0F?|\x2764\xFE0F?\x200D(?:\x1F48B\x200D)?\x1F468[\x1F3FB-\x1F3FF]|[\x1F33E\x1F373\x1F37C\x1F393\x1F3A4\x1F3A8\x1F3EB\x1F3ED\x1F4BB\x1F4BC\x1F527\x1F52C\x1F680\x1F692]|\x1F91D\x200D\x1F468[\x1F3FB\x1F3FD-\x1F3FF]|[\x1F9AF-\x1F9B3\x1F9BC\x1F9BD]))?|\x1F3FD(?:\x200D(?:[\x2695\x2696\x2708]\xFE0F?|\x2764\xFE0F?\x200D(?:\x1F48B\x200D)?\x1F468[\x1F3FB-\x1F3FF]|[\x1F33E\x1F373\x1F37C\x1F393\x1F3A4\x1F3A8\x1F3EB\x1F3ED\x1F4BB\x1F4BC\x1F527\x1F52C\x1F680\x1F692]|\x1F91D\x200D\x1F468[\x1F3FB\x1F3FC\x1F3FE\x1F3FF]|[\x1F9AF-\x1F9B3\x1F9BC\x1F9BD]))?|\x1F3FE(?:\x200D(?:[\x2695\x2696\x2708]\xFE0F?|\x2764\xFE0F?\x200D(?:\x1F48B\x200D)?\x1F468[\x1F3FB-\x1F3FF]|[\x1F33E\x1F373\x1F37C\x1F393\x1F3A4\x1F3A8\x1F3EB\x1F3ED\x1F4BB\x1F4BC\x1F527\x1F52C\x1F680\x1F692]|\x1F91D\x200D\x1F468[\x1F3FB-\x1F3FD\x1F3FF]|[\x1F9AF-\x1F9B3\x1F9BC\x1F9BD]))?|\x1F3FF(?:\x200D(?:[\x2695\x2696\x2708]\xFE0F?|\x2764\xFE0F?\x200D(?:\x1F48B\x200D)?\x1F468[\x1F3FB-\x1F3FF]|[\x1F33E\x1F373\x1F37C\x1F393\x1F3A4\x1F3A8\x1F3EB\x1F3ED\x1F4BB\x1F4BC\x1F527\x1F52C\x1F680\x1F692]|\x1F91D\x200D\x1F468[\x1F3FB-\x1F3FE]|[\x1F9AF-\x1F9B3\x1F9BC\x1F9BD]))?)?|\x1F469(?:\x200D(?:[\x2695\x2696\x2708]\xFE0F?|\x2764\xFE0F?\x200D(?:\x1F48B\x200D)?[\x1F468\x1F469]|[\x1F33E\x1F373\x1F37C\x1F393\x1F3A4\x1F3A8\x1F3EB\x1F3ED]|\x1F466(?:\x200D\x1F466)?|\x1F467(?:\x200D[\x1F466\x1F467])?|\x1F469\x200D(?:\x1F466(?:\x200D\x1F466)?|\x1F467(?:\x200D[\x1F466\x1F467])?)|[\x1F4BB\x1F4BC\x1F527\x1F52C\x1F680\x1F692\x1F9AF-\x1F9B3\x1F9BC\x1F9BD])|\x1F3FB(?:\x200D(?:[\x2695\x2696\x2708]\xFE0F?|\x2764\xFE0F?\x200D(?:[\x1F468\x1F469][\x1F3FB-\x1F3FF]|\x1F48B\x200D[\x1F468\x1F469][\x1F3FB-\x1F3FF])|[\x1F33E\x1F373\x1F37C\x1F393\x1F3A4\x1F3A8\x1F3EB\x1F3ED\x1F4BB\x1F4BC\x1F527\x1F52C\x1F680\x1F692]|\x1F91D\x200D[\x1F468\x1F469][\x1F3FC-\x1F3FF]|[\x1F9AF-\x1F9B3\x1F9BC\x1F9BD]))?|\x1F3FC(?:\x200D(?:[\x2695\x2696\x2708]\xFE0F?|\x2764\xFE0F?\x200D(?:[\x1F468\x1F469][\x1F3FB-\x1F3FF]|\x1F48B\x200D[\x1F468\x1F469][\x1F3FB-\x1F3FF])|[\x1F33E\x1F373\x1F37C\x1F393\x1F3A4\x1F3A8\x1F3EB\x1F3ED\x1F4BB\x1F4BC\x1F527\x1F52C\x1F680\x1F692]|\x1F91D\x200D[\x1F468\x1F469][\x1F3FB\x1F3FD-\x1F3FF]|[\x1F9AF-\x1F9B3\x1F9BC\x1F9BD]))?|\x1F3FD(?:\x200D(?:[\x2695\x2696\x2708]\xFE0F?|\x2764\xFE0F?\x200D(?:[\x1F468\x1F469][\x1F3FB-\x1F3FF]|\x1F48B\x200D[\x1F468\x1F469][\x1F3FB-\x1F3FF])|[\x1F33E\x1F373\x1F37C\x1F393\x1F3A4\x1F3A8\x1F3EB\x1F3ED\x1F4BB\x1F4BC\x1F527\x1F52C\x1F680\x1F692]|\x1F91D\x200D[\x1F468\x1F469][\x1F3FB\x1F3FC\x1F3FE\x1F3FF]|[\x1F9AF-\x1F9B3\x1F9BC\x1F9BD]))?|\x1F3FE(?:\x200D(?:[\x2695\x2696\x2708]\xFE0F?|\x2764\xFE0F?\x200D(?:[\x1F468\x1F469][\x1F3FB-\x1F3FF]|\x1F48B\x200D[\x1F468\x1F469][\x1F3FB-\x1F3FF])|[\x1F33E\x1F373\x1F37C\x1F393\x1F3A4\x1F3A8\x1F3EB\x1F3ED\x1F4BB\x1F4BC\x1F527\x1F52C\x1F680\x1F692]|\x1F91D\x200D[\x1F468\x1F469][\x1F3FB-\x1F3FD\x1F3FF]|[\x1F9AF-\x1F9B3\x1F9BC\x1F9BD]))?|\x1F3FF(?:\x200D(?:[\x2695\x2696\x2708]\xFE0F?|\x2764\xFE0F?\x200D(?:[\x1F468\x1F469][\x1F3FB-\x1F3FF]|\x1F48B\x200D[\x1F468\x1F469][\x1F3FB-\x1F3FF])|[\x1F33E\x1F373\x1F37C\x1F393\x1F3A4\x1F3A8\x1F3EB\x1F3ED\x1F4BB\x1F4BC\x1F527\x1F52C\x1F680\x1F692]|\x1F91D\x200D[\x1F468\x1F469][\x1F3FB-\x1F3FE]|[\x1F9AF-\x1F9B3\x1F9BC\x1F9BD]))?)?|\x1F46A|[\x1F46B-\x1F46D][\x1F3FB-\x1F3FF]?|\x1F46E(?:\x200D[\x2640\x2642]\xFE0F?|[\x1F3FB-\x1F3FF](?:\x200D[\x2640\x2642]\xFE0F?)?)?|\x1F46F(?:\x200D[\x2640\x2642]\xFE0F?)?|[\x1F470\x1F471](?:\x200D[\x2640\x2642]\xFE0F?|[\x1F3FB-\x1F3FF](?:\x200D[\x2640\x2642]\xFE0F?)?)?|\x1F472[\x1F3FB-\x1F3FF]?|\x1F473(?:\x200D[\x2640\x2642]\xFE0F?|[\x1F3FB-\x1F3FF](?:\x200D[\x2640\x2642]\xFE0F?)?)?|[\x1F474-\x1F476][\x1F3FB-\x1F3FF]?|\x1F477(?:\x200D[\x2640\x2642]\xFE0F?|[\x1F3FB-\x1F3FF](?:\x200D[\x2640\x2642]\xFE0F?)?)?|\x1F478[\x1F3FB-\x1F3FF]?|[\x1F479-\x1F47B]|\x1F47C[\x1F3FB-\x1F3FF]?|[\x1F47D-\x1F480]|[\x1F481\x1F482](?:\x200D[\x2640\x2642]\xFE0F?|[\x1F3FB-\x1F3FF](?:\x200D[\x2640\x2642]\xFE0F?)?)?|\x1F483[\x1F3FB-\x1F3FF]?|\x1F484|\x1F485[\x1F3FB-\x1F3FF]?|[\x1F486\x1F487](?:\x200D[\x2640\x2642]\xFE0F?|[\x1F3FB-\x1F3FF](?:\x200D[\x2640\x2642]\xFE0F?)?)?|[\x1F488-\x1F48E]|\x1F48F[\x1F3FB-\x1F3FF]?|\x1F490|\x1F491[\x1F3FB-\x1F3FF]?|[\x1F492-\x1F4A9]|\x1F4AA[\x1F3FB-\x1F3FF]?|[\x1F4AB-\x1F4FC]|\x1F4FD\xFE0F?|[\x1F4FF-\x1F53D]|[\x1F549\x1F54A]\xFE0F?|[\x1F54B-\x1F54E\x1F550-\x1F567]|[\x1F56F\x1F570\x1F573]\xFE0F?|\x1F574[\xFE0F\x1F3FB-\x1F3FF]?|\x1F575(?:\x200D[\x2640\x2642]\xFE0F?|[\xFE0F\x1F3FB-\x1F3FF](?:\x200D[\x2640\x2642]\xFE0F?)?)?|[\x1F576-\x1F579]\xFE0F?|\x1F57A[\x1F3FB-\x1F3FF]?|[\x1F587\x1F58A-\x1F58D]\xFE0F?|\x1F590[\xFE0F\x1F3FB-\x1F3FF]?|[\x1F595\x1F596][\x1F3FB-\x1F3FF]?|\x1F5A4|[\x1F5A5\x1F5A8\x1F5B1\x1F5B2\x1F5BC\x1F5C2-\x1F5C4\x1F5D1-\x1F5D3\x1F5DC-\x1F5DE\x1F5E1\x1F5E3\x1F5E8\x1F5EF\x1F5F3\x1F5FA]\xFE0F?|[\x1F5FB-\x1F62D]|\x1F62E(?:\x200D\x1F4A8)?|[\x1F62F-\x1F634]|\x1F635(?:\x200D\x1F4AB)?|\x1F636(?:\x200D\x1F32B\xFE0F?)?|[\x1F637-\x1F644]|[\x1F645-\x1F647](?:\x200D[\x2640\x2642]\xFE0F?|[\x1F3FB-\x1F3FF](?:\x200D[\x2640\x2642]\xFE0F?)?)?|[\x1F648-\x1F64A]|\x1F64B(?:\x200D[\x2640\x2642]\xFE0F?|[\x1F3FB-\x1F3FF](?:\x200D[\x2640\x2642]\xFE0F?)?)?|\x1F64C[\x1F3FB-\x1F3FF]?|[\x1F64D\x1F64E](?:\x200D[\x2640\x2642]\xFE0F?|[\x1F3FB-\x1F3FF](?:\x200D[\x2640\x2642]\xFE0F?)?)?|\x1F64F[\x1F3FB-\x1F3FF]?|[\x1F680-\x1F6A2]|\x1F6A3(?:\x200D[\x2640\x2642]\xFE0F?|[\x1F3FB-\x1F3FF](?:\x200D[\x2640\x2642]\xFE0F?)?)?|[\x1F6A4-\x1F6B3]|[\x1F6B4-\x1F6B6](?:\x200D[\x2640\x2642]\xFE0F?|[\x1F3FB-\x1F3FF](?:\x200D[\x2640\x2642]\xFE0F?)?)?|[\x1F6B7-\x1F6BF]|\x1F6C0[\x1F3FB-\x1F3FF]?|[\x1F6C1-\x1F6C5]|\x1F6CB\xFE0F?|\x1F6CC[\x1F3FB-\x1F3FF]?|[\x1F6CD-\x1F6CF]\xFE0F?|[\x1F6D0-\x1F6D2\x1F6D5-\x1F6D7\x1F6DD-\x1F6DF]|[\x1F6E0-\x1F6E5\x1F6E9]\xFE0F?|[\x1F6EB\x1F6EC]|[\x1F6F0\x1F6F3]\xFE0F?|[\x1F6F4-\x1F6FC\x1F7E0-\x1F7EB\x1F7F0]|\x1F90C[\x1F3FB-\x1F3FF]?|[\x1F90D\x1F90E]|\x1F90F[\x1F3FB-\x1F3FF]?|[\x1F910-\x1F917]|[\x1F918-\x1F91F][\x1F3FB-\x1F3FF]?|[\x1F920-\x1F925]|\x1F926(?:\x200D[\x2640\x2642]\xFE0F?|[\x1F3FB-\x1F3FF](?:\x200D[\x2640\x2642]\xFE0F?)?)?|[\x1F927-\x1F92F]|[\x1F930-\x1F934][\x1F3FB-\x1F3FF]?|\x1F935(?:\x200D[\x2640\x2642]\xFE0F?|[\x1F3FB-\x1F3FF](?:\x200D[\x2640\x2642]\xFE0F?)?)?|\x1F936[\x1F3FB-\x1F3FF]?|[\x1F937-\x1F939](?:\x200D[\x2640\x2642]\xFE0F?|[\x1F3FB-\x1F3FF](?:\x200D[\x2640\x2642]\xFE0F?)?)?|\x1F93A|\x1F93C(?:\x200D[\x2640\x2642]\xFE0F?)?|[\x1F93D\x1F93E](?:\x200D[\x2640\x2642]\xFE0F?|[\x1F3FB-\x1F3FF](?:\x200D[\x2640\x2642]\xFE0F?)?)?|[\x1F93F-\x1F945\x1F947-\x1F976]|\x1F977[\x1F3FB-\x1F3FF]?|[\x1F978-\x1F9B4]|[\x1F9B5\x1F9B6][\x1F3FB-\x1F3FF]?|\x1F9B7|[\x1F9B8\x1F9B9](?:\x200D[\x2640\x2642]\xFE0F?|[\x1F3FB-\x1F3FF](?:\x200D[\x2640\x2642]\xFE0F?)?)?|\x1F9BA|\x1F9BB[\x1F3FB-\x1F3FF]?|[\x1F9BC-\x1F9CC]|[\x1F9CD-\x1F9CF](?:\x200D[\x2640\x2642]\xFE0F?|[\x1F3FB-\x1F3FF](?:\x200D[\x2640\x2642]\xFE0F?)?)?|\x1F9D0|\x1F9D1(?:\x200D(?:[\x2695\x2696\x2708]\xFE0F?|[\x1F33E\x1F373\x1F37C\x1F384\x1F393\x1F3A4\x1F3A8\x1F3EB\x1F3ED\x1F4BB\x1F4BC\x1F527\x1F52C\x1F680\x1F692]|\x1F91D\x200D\x1F9D1|[\x1F9AF-\x1F9B3\x1F9BC\x1F9BD])|\x1F3FB(?:\x200D(?:[\x2695\x2696\x2708]\xFE0F?|\x2764\xFE0F?\x200D(?:\x1F48B\x200D|)\x1F9D1[\x1F3FC-\x1F3FF]|[\x1F33E\x1F373\x1F37C\x1F384\x1F393\x1F3A4\x1F3A8\x1F3EB\x1F3ED\x1F4BB\x1F4BC\x1F527\x1F52C\x1F680\x1F692]|\x1F91D\x200D\x1F9D1[\x1F3FB-\x1F3FF]|[\x1F9AF-\x1F9B3\x1F9BC\x1F9BD]))?|\x1F3FC(?:\x200D(?:[\x2695\x2696\x2708]\xFE0F?|\x2764\xFE0F?\x200D(?:\x1F48B\x200D|)\x1F9D1[\x1F3FB\x1F3FD-\x1F3FF]|[\x1F33E\x1F373\x1F37C\x1F384\x1F393\x1F3A4\x1F3A8\x1F3EB\x1F3ED\x1F4BB\x1F4BC\x1F527\x1F52C\x1F680\x1F692]|\x1F91D\x200D\x1F9D1[\x1F3FB-\x1F3FF]|[\x1F9AF-\x1F9B3\x1F9BC\x1F9BD]))?|\x1F3FD(?:\x200D(?:[\x2695\x2696\x2708]\xFE0F?|\x2764\xFE0F?\x200D(?:\x1F48B\x200D|)\x1F9D1[\x1F3FB\x1F3FC\x1F3FE\x1F3FF]|[\x1F33E\x1F373\x1F37C\x1F384\x1F393\x1F3A4\x1F3A8\x1F3EB\x1F3ED\x1F4BB\x1F4BC\x1F527\x1F52C\x1F680\x1F692]|\x1F91D\x200D\x1F9D1[\x1F3FB-\x1F3FF]|[\x1F9AF-\x1F9B3\x1F9BC\x1F9BD]))?|\x1F3FE(?:\x200D(?:[\x2695\x2696\x2708]\xFE0F?|\x2764\xFE0F?\x200D(?:\x1F48B\x200D|)\x1F9D1[\x1F3FB-\x1F3FD\x1F3FF]|[\x1F33E\x1F373\x1F37C\x1F384\x1F393\x1F3A4\x1F3A8\x1F3EB\x1F3ED\x1F4BB\x1F4BC\x1F527\x1F52C\x1F680\x1F692]|\x1F91D\x200D\x1F9D1[\x1F3FB-\x1F3FF]|[\x1F9AF-\x1F9B3\x1F9BC\x1F9BD]))?|\x1F3FF(?:\x200D(?:[\x2695\x2696\x2708]\xFE0F?|\x2764\xFE0F?\x200D(?:\x1F48B\x200D|)\x1F9D1[\x1F3FB-\x1F3FE]|[\x1F33E\x1F373\x1F37C\x1F384\x1F393\x1F3A4\x1F3A8\x1F3EB\x1F3ED\x1F4BB\x1F4BC\x1F527\x1F52C\x1F680\x1F692]|\x1F91D\x200D\x1F9D1[\x1F3FB-\x1F3FF]|[\x1F9AF-\x1F9B3\x1F9BC\x1F9BD]))?)?|[\x1F9D2\x1F9D3][\x1F3FB-\x1F3FF]?|\x1F9D4(?:\x200D[\x2640\x2642]\xFE0F?|[\x1F3FB-\x1F3FF](?:\x200D[\x2640\x2642]\xFE0F?)?)?|\x1F9D5[\x1F3FB-\x1F3FF]?|[\x1F9D6-\x1F9DD](?:\x200D[\x2640\x2642]\xFE0F?|[\x1F3FB-\x1F3FF](?:\x200D[\x2640\x2642]\xFE0F?)?)?|[\x1F9DE\x1F9DF](?:\x200D[\x2640\x2642]\xFE0F?)?|[\x1F9E0-\x1F9FF\x1FA70-\x1FA74\x1FA78-\x1FA7C\x1FA80-\x1FA86\x1FA90-\x1FAAC\x1FAB0-\x1FABA\x1FAC0-\x1FAC2]|[\x1FAC3-\x1FAC5][\x1F3FB-\x1F3FF]?|[\x1FAD0-\x1FAD9\x1FAE0-\x1FAE7]|\x1FAF0[\x1F3FB-\x1F3FF]?|\x1FAF1(?:\x1F3FB(?:\x200D\x1FAF2[\x1F3FC-\x1F3FF])?|\x1F3FC(?:\x200D\x1FAF2[\x1F3FB\x1F3FD-\x1F3FF])?|\x1F3FD(?:\x200D\x1FAF2[\x1F3FB\x1F3FC\x1F3FE\x1F3FF])?|\x1F3FE(?:\x200D\x1FAF2[\x1F3FB-\x1F3FD\x1F3FF])?|\x1F3FF(?:\x200D\x1FAF2[\x1F3FB-\x1F3FE])?)?|[\x1FAF2-\x1FAF6][\x1F3FB-\x1F3FF]?`)

查看RE2 regex demo,现在它匹配所有current 4702 emojis。

【讨论】:

请注意,这并不能处理所有表情符号。例如。 ? @BenJohnson 我现在知道了,5 年前我不知道。【参考方案2】:

我的另一个完整答案被删除了,我不小心认为。

这是使用正则表达式与 Go 匹配 v14(及更低版本)IEmoji 字符的方法。 它是一个 UTF-8/32 正则表达式。 此正则表达式大小为 3k,每秒至少匹配 120,000 个 IEmoji。 没有比这更快的正则表达式了。

[0-9#*]️?⃣|[©®‼⁉™ℹ↔-↙↩↪⌨⏏⏭-⏯⏱⏲⏸-⏺Ⓜ▪▫▶◀◻◼☀-☄☎☑☘☠☢☣☦☪☮☯☸-☺♀♂♟♠♣♥♦♨♻♾⚒⚔-⚗⚙⚛⚜⚠⚧⚰⚱⛈⛏⛑⛓⛩⛰⛱⛴⛷⛸✂✈✉✏✒✔✖✝✡✳✴❄❇❣➡⤴⤵⬅-⬇〰〽㊗㊙????????-??????-??????-???????????-???-???????-??-??-?????????-??-????]️?|[☝✌✍??][️?-?]?|[⛹???](?:‍[♀♂]️?|[️?-?](?:‍[♀♂]️?)?)?|[✊✋??????-????-???-??????????????????-??-??????????-???-?][?-?]?|❤(?:‍[??]|️(?:‍[??])?)?|?[?-??????-????]|?[???-??-??-?????]|?[????-??-???-?]|?[???????]|?[??????-?]|?[?-????]|?[???-??-??-???]|?[??????]|?[?-??-??-?]|?[????]|?[??-????????]|?[?-????-??]|?[??-??-?]|?[???-????????]|??|?[??-??-??-???]|??|?[?????]|?[?-??-??-???-?]|?[????-??-??????]|?[???????]|?[???????]|?[??]|??|?[??]|?[???]|[?????????????-??????-????-??????-???-?](?:‍[♀♂]️?|[?-?](?:‍[♀♂]️?)?)?|?(?:‍(?:⚧️?|?)|️(?:‍(?:⚧️?|?))?)?|?(?:‍☠️?|??(?:???|???|???)?)?|?(?:‍⬛)?|?(?:‍?)?|?(?:‍❄️?)?|?(?:‍?️?|️(?:‍?️?)?)?|?(?:‍(?:[⚕⚖✈]️?|❤️?‍(?:?‍)??|?(?:‍?)?|?(?:‍[??])?|[??]‍(?:?(?:‍?)?|?(?:‍[??])?)|[???????????????-???])|?(?:‍(?:[⚕⚖✈]️?|❤️?‍(?:?‍)??[?-?]|?‍?[?-?]|[???????????????-???]))?|?(?:‍(?:[⚕⚖✈]️?|❤️?‍(?:?‍)??[?-?]|?‍?[??-?]|[???????????????-???]))?|?(?:‍(?:[⚕⚖✈]️?|❤️?‍(?:?‍)??[?-?]|?‍?[????]|[???????????????-???]))?|?(?:‍(?:[⚕⚖✈]️?|❤️?‍(?:?‍)??[?-?]|?‍?[?-??]|[???????????????-???]))?|?(?:‍(?:[⚕⚖✈]️?|❤️?‍(?:?‍)??[?-?]|?‍?[?-?]|[???????????????-???]))?)?|?(?:‍(?:[⚕⚖✈]️?|❤️?‍(?:[??]|?‍[??])|?(?:‍?)?|?(?:‍[??])?|?‍(?:?(?:‍?)?|?(?:‍[??])?)|[???????????????-???])|?(?:‍(?:[⚕⚖✈]️?|❤️?‍(?:?‍)?[??][?-?]|?‍[??][?-?]|[???????????????-???]))?|?(?:‍(?:[⚕⚖✈]️?|❤️?‍(?:?‍)?[??][?-?]|?‍[??][??-?]|[???????????????-???]))?|?(?:‍(?:[⚕⚖✈]️?|❤️?‍(?:?‍)?[??][?-?]|?‍[??][????]|[???????????????-???]))?|?(?:‍(?:[⚕⚖✈]️?|❤️?‍(?:?‍)?[??][?-?]|?‍[??][?-??]|[???????????????-???]))?|?(?:‍(?:[⚕⚖✈]️?|❤️?‍(?:?‍)?[??][?-?]|?‍[??][?-?]|[???????????????-???]))?)?|[????](?:‍[♀♂]️?)?|?(?:‍?)?|?(?:‍?)?|?(?:‍?️?)?|?(?:‍(?:[⚕⚖✈]️?|?‍?|[????????????????-???])|?(?:‍(?:[⚕⚖✈]️?|❤️?‍(?:?‍)??[?-?]|?‍?[?-?]|[????????????????-???]))?|?(?:‍(?:[⚕⚖✈]️?|❤️?‍(?:?‍)??[??-?]|?‍?[?-?]|[????????????????-???]))?|?(?:‍(?:[⚕⚖✈]️?|❤️?‍(?:?‍)??[????]|?‍?[?-?]|[????????????????-???]))?|?(?:‍(?:[⚕⚖✈]️?|❤️?‍(?:?‍)??[?-??]|?‍?[?-?]|[????????????????-???]))?|?(?:‍(?:[⚕⚖✈]️?|❤️?‍(?:?‍)??[?-?]|?‍?[?-?]|[????????????????-???]))?)?|[⌚⌛⏩-⏬⏰⏳◽◾☔☕♈-♓♿⚓⚡⚪⚫⚽⚾⛄⛅⛎⛔⛪⛲⛳⛵⛺⛽✅✨❌❎❓-❕❗➕-➗➰➿⬛⬜⭐⭕????-?????-??-????-??-??-??-??-??-??????-??-??-??-??-??-?????-???-??-???-???-??-??-??-??-???-??-??-??-??-??-??-??-??-??-??-????-??-?????-??-??-???-??-??-????-???-??-??-??-??-??-??-??-??-?]|?(?:?(?:‍?[?-?])?|?(?:‍?[??-?])?|?(?:‍?[????])?|?(?:‍?[?-??])?|?(?:‍?[?-?])?)?

Golanghttps://regex101.com/r/qep8ZJ/1


相同的正则表达式用于这些其他引擎/语言:

PCRE https://regex101.com/r/AlO8QD/1 蟒蛇https://regex101.com/r/iCzyv2/1 ECMAScript https://regex101.com/r/BoyE2n/1 Java8https://regex101.com/r/lYqUQ7/1

【讨论】:

以上是关于如何在golang中使用正则表达式替换字符串中的表情符号的主要内容,如果未能解决你的问题,请参考以下文章

C# 如何高效替换一个字符串中的全部某字符?

如何使用REPLACE和正则表达式替换MYSQL中字符串中的多个关键字[重复]

如何在 VBScript 中使用正则表达式替换部分子字符串?

如何替换正则表达式中的实际星号字符 (*)?

Python正则表达式如何进行字符串替换

正则表达式替换问题