加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 检测* all * emojis

发布时间:2020-12-15 08:29:38 所属栏目:百科 来源:网络整理
导读:现在我正在使用这段代码: public static bool ContainsEmoji(this string text){ Regex rgx = new Regex(@"p{Cs}"); return rgx.IsMatch(text);} 它有点帮助. 他们中的大多数似乎被发现,但有些则没有. 这是一个参考列表,以帮助:http://unicode.org/emoji/
现在我正在使用这段代码:
public static bool ContainsEmoji(this string text)
{
    Regex rgx = new Regex(@"p{Cs}");
    return rgx.IsMatch(text);
}

它有点帮助.

他们中的大多数似乎被发现,但有些则没有.

这是一个参考列表,以帮助:http://unicode.org/emoji/charts/full-emoji-list.html

所有的笑脸似乎都很好,但这些特定的表情符号并没有被正则表达式所抓住:

1920 U2614?伞与雨滴

1921年U26F1?伞在地上

1922年U26A1?高压

1923年U 2744?雪花

在键盘上这些并不是彼此靠近,但在列表中它们是相互跟随的,所以我只是假设有一个点它将开始不在表情符号列表中工作,并且它不是真正的验证.从1905年(天气般的表情符号),下降,一些被捕获在正则表达式,一些不是.似乎没有任何规则.

我不能只是去全ASCII,因为我需要人们输入像西里尔字母这样的字符,但我不能特别接受表情符号.我不知道如何从这里前进.

我读了MSDN docs about surrogates high/low pairs,但在这个阶段,这对我来说非常困惑,我认为一些正确的方向推进将会有很长的路要走.

非常感谢您的宝贵时间 :)

解决方法

您可以使用以下正则表达式匹配 Emoji Keyboard/Display Test Data for UTR #51 (Version: 11.0)文件中定义的所有3518表情符号字符:
var EmojiPattern = @"(?:uD83D(?:[uDC76uDC66uDC67](?:uD83C[uDFFB-uDFFF])?|uDC68(?:(?:uD83C(?:[uDFFB-uDFFF](?:u200D(?:u2695uFE0F?|uD83C[uDF93uDFEBuDF3EuDF73uDFEDuDFA4uDFA8]|u2696uFE0F?|uD83D[uDD27uDCBCuDD2CuDCBBuDE80uDE92]|u2708uFE0F?|uD83E[uDDB0-uDDB3]))?)|u200D(?:u2695uFE0F?|uD83C[uDF93uDFEBuDF3EuDF73uDFEDuDFA4uDFA8]|u2696uFE0F?|uD83D(?:uDC69u200DuD83D(?:uDC66(?:u200DuD83DuDC66)?|uDC67(?:u200DuD83D[uDC66uDC67])?)|uDC68u200DuD83D(?:uDC66(?:u200DuD83DuDC66)?|uDC67(?:u200DuD83D[uDC66uDC67])?)|uDC66(?:u200DuD83DuDC66)?|uDC67(?:u200DuD83D[uDC66uDC67])?|[uDD27uDCBCuDD2CuDCBBuDE80uDE92])|u2708uFE0F?|uD83E[uDDB0-uDDB3]|u2764(?:uFE0Fu200DuD83D(?:uDC8Bu200DuD83DuDC68|uDC68)|u200DuD83D(?:uDC8Bu200DuD83DuDC68|uDC68)))))?|uDC69(?:(?:uD83C(?:[uDFFB-uDFFF](?:u200D(?:u2695uFE0F?|uD83C[uDF93uDFEBuDF3EuDF73uDFEDuDFA4uDFA8]|u2696uFE0F?|uD83D[uDD27uDCBCuDD2CuDCBBuDE80uDE92]|u2708uFE0F?|uD83E[uDDB0-uDDB3]))?)|u200D(?:u2695uFE0F?|uD83C[uDF93uDFEBuDF3EuDF73uDFEDuDFA4uDFA8]|u2696uFE0F?|uD83D(?:uDC69u200DuD83D(?:uDC66(?:u200DuD83DuDC66)?|uDC67(?:u200DuD83D[uDC66uDC67])?)|uDC66(?:u200DuD83DuDC66)?|uDC67(?:u200DuD83D[uDC66uDC67])?|[uDD27uDCBCuDD2CuDCBBuDE80uDE92])|u2708uFE0F?|uD83E[uDDB0-uDDB3]|u2764(?:uFE0Fu200DuD83D(?:uDC8Bu200DuD83D[uDC68uDC69]|[uDC68uDC69])|u200DuD83D(?:uDC8Bu200DuD83D[uDC68uDC69]|[uDC68uDC69])))))?|[uDC74uDC75](?:uD83C[uDFFB-uDFFF])?|uDC6E(?:(?:uD83C(?:[uDFFB-uDFFF](?:u200D(?:[u2642u2640]uFE0F?))?)|u200D(?:[u2642u2640]uFE0F?)))?|uDD75(?:(?:uFE0F(?:u200D(?:[u2642u2640]uFE0F?))?|uD83C(?:[uDFFB-uDFFF](?:u200D(?:[u2642u2640]uFE0F?))?)|u200D(?:[u2642u2640]uFE0F?)))?|[uDC82uDC77](?:(?:uD83C(?:[uDFFB-uDFFF](?:u200D(?:[u2642u2640]uFE0F?))?)|u200D(?:[u2642u2640]uFE0F?)))?|uDC78(?:uD83C[uDFFB-uDFFF])?|uDC73(?:(?:uD83C(?:[uDFFB-uDFFF](?:u200D(?:[u2642u2640]uFE0F?))?)|u200D(?:[u2642u2640]uFE0F?)))?|uDC72(?:uD83C[uDFFB-uDFFF])?|uDC71(?:(?:uD83C(?:[uDFFB-uDFFF](?:u200D(?:[u2642u2640]uFE0F?))?)|u200D(?:[u2642u2640]uFE0F?)))?|[uDC70uDC7C](?:uD83C[uDFFB-uDFFF])?|[uDE4DuDE4EuDE45uDE46uDC81uDE4BuDE47uDC86uDC87uDEB6](?:(?:uD83C(?:[uDFFB-uDFFF](?:u200D(?:[u2642u2640]uFE0F?))?)|u200D(?:[u2642u2640]uFE0F?)))?|[uDC83uDD7A](?:uD83C[uDFFB-uDFFF])?|uDC6F(?:u200D(?:[u2642u2640]uFE0F?))?|[uDEC0uDECC](?:uD83C[uDFFB-uDFFF])?|uDD74(?:(?:uD83C[uDFFB-uDFFF]|uFE0F))?|uDDE3uFE0F?|[uDEA3uDEB4uDEB5](?:(?:uD83C(?:[uDFFB-uDFFF](?:u200D(?:[u2642u2640]uFE0F?))?)|u200D(?:[u2642u2640]uFE0F?)))?|[uDCAAuDC48uDC49uDC46uDD95uDC47uDD96](?:uD83C[uDFFB-uDFFF])?|uDD90(?:(?:uD83C[uDFFB-uDFFF]|uFE0F))?|[uDC4C-uDC4EuDC4AuDC4BuDC4FuDC50uDE4CuDE4FuDC85uDC42uDC43](?:uD83C[uDFFB-uDFFF])?|uDC41(?:(?:uFE0F(?:u200DuD83DuDDE8uFE0F?)?|u200DuD83DuDDE8uFE0F?))?|[uDDE8uDDEFuDD73uDD76uDECDuDC3FuDD4AuDD77uDD78uDDFAuDEE3uDEE4uDEE2uDEF3uDEE5uDEE9uDEF0uDECEuDD70uDD79uDDBCuDDA5uDDA8uDDB1uDDB2uDCFDuDD6FuDDDEuDDF3uDD8BuDD8AuDD8CuDD8DuDDC2uDDD2uDDD3uDD87uDDC3uDDC4uDDD1uDDDDuDEE0uDDE1uDEE1uDDDCuDECFuDECBuDD49]uFE0F?|[uDE00-uDE06uDE09-uDE0BuDE0EuDE0DuDE18uDE17uDE19uDE1AuDE42uDE10uDE11uDE36uDE44uDE0FuDE23uDE25uDE2EuDE2FuDE2AuDE2BuDE34uDE0CuDE1B-uDE1DuDE12-uDE15uDE43uDE32uDE41uDE16uDE1EuDE1FuDE24uDE22uDE2DuDE26-uDE29uDE2CuDE30uDE31uDE33uDE35uDE21uDE20uDE37uDE07uDE08uDC7FuDC79uDC7AuDC80uDC7BuDC7DuDC7EuDCA9uDE3AuDE38uDE39uDE3B-uDE3DuDE40uDE3FuDE3EuDE48-uDE4AuDC64uDC65uDC6B-uDC6DuDC8FuDC91uDC6AuDC63uDC40uDC45uDC44uDC8BuDC98uDC93-uDC97uDC99-uDC9CuDDA4uDC9D-uDC9FuDC8CuDCA4uDCA2uDCA3uDCA5uDCA6uDCA8uDCAB-uDCADuDC53-uDC62uDC51uDC52uDCFFuDC84uDC8DuDC8EuDC35uDC12uDC36uDC15uDC29uDC3AuDC31uDC08uDC2FuDC05uDC06uDC34uDC0EuDC2EuDC02-uDC04uDC37uDC16uDC17uDC3DuDC0FuDC11uDC10uDC2AuDC2BuDC18uDC2DuDC01uDC00uDC39uDC30uDC07uDC3BuDC28uDC3CuDC3EuDC14uDC13uDC23-uDC27uDC38uDC0AuDC22uDC0DuDC32uDC09uDC33uDC0BuDC2CuDC1F-uDC21uDC19uDC1AuDC0CuDC1B-uDC1EuDC90uDCAEuDD2AuDDFEuDDFBuDC92uDDFCuDDFDuDD4CuDD4DuDD4BuDC88uDE82-uDE8AuDE9DuDE9EuDE8B-uDE8EuDE90-uDE9CuDEB2uDEF4uDEF9uDEF5uDE8FuDEA8uDEA5uDEA6uDED1uDEA7uDEF6uDEA4uDEA2uDEEBuDEECuDCBAuDE81uDE9F-uDEA1uDE80uDEF8uDD5BuDD67uDD50uDD5CuDD51uDD5DuDD52uDD5EuDD53uDD5FuDD54uDD60uDD55uDD61uDD56uDD62uDD57uDD63uDD58uDD64uDD59uDD65uDD5AuDD66uDD25uDCA7uDEF7uDD2EuDD07-uDD0AuDCE2uDCE3uDCEFuDD14uDD15uDCFBuDCF1uDCF2uDCDE-uDCE0uDD0BuDD0CuDCBBuDCBD-uDCC0uDCFAuDCF7-uDCF9uDCFCuDD0DuDD0EuDCA1uDD26uDCD4-uDCDAuDCD3uDCD2uDCC3uDCDCuDCC4uDCF0uDCD1uDD16uDCB0uDCB4-uDCB8uDCB3uDCB9uDCB1uDCB2uDCE7-uDCE9uDCE4-uDCE6uDCEBuDCEAuDCEC-uDCEEuDCDDuDCBCuDCC1uDCC2uDCC5-uDCD0uDD12uDD13uDD0F-uDD11uDD28uDD2BuDD27uDD29uDD17uDD2CuDD2DuDCE1uDC89uDC8AuDEAAuDEBDuDEBFuDEC1uDED2uDEACuDDFFuDEAEuDEB0uDEB9-uDEBCuDEBEuDEC2-uDEC5uDEB8uDEABuDEB3uDEADuDEAFuDEB1uDEB7uDCF5uDD1EuDD03uDD04uDD19-uDD1DuDED0uDD4EuDD2FuDD00-uDD02uDD3CuDD3DuDD05uDD06uDCF6uDCF3uDCF4uDD31uDCDBuDD30uDD1FuDCAFuDD20-uDD24uDD36-uDD3BuDCA0uDD18uDD32-uDD35uDEA9])|uD83E(?:[uDDD2uDDD1uDDD3](?:uD83C[uDFFB-uDFFF])?|[uDDB8uDDB9](?:u200D(?:[u2640u2642]uFE0F?))?|[uDD34uDDD5uDDD4uDD35uDD30uDD31uDD36](?:uD83C[uDFFB-uDFFF])?|[uDDD9-uDDDD](?:(?:uD83C(?:[uDFFB-uDFFF](?:u200D(?:[u2640u2642]uFE0F?))?)|u200D(?:[u2640u2642]uFE0F?)))?|[uDDDEuDDDF](?:u200D(?:[u2640u2642]uFE0F?))?|[uDD26uDD37](?:(?:uD83C(?:[uDFFB-uDFFF](?:u200D(?:[u2642u2640]uFE0F?))?)|u200D(?:[u2642u2640]uFE0F?)))?|[uDDD6-uDDD8](?:(?:uD83C(?:[uDFFB-uDFFF](?:u200D(?:[u2640u2642]uFE0F?))?)|u200D(?:[u2640u2642]uFE0F?)))?|uDD38(?:(?:uD83C(?:[uDFFB-uDFFF](?:u200D(?:[u2642u2640]uFE0F?))?)|u200D(?:[u2642u2640]uFE0F?)))?|uDD3C(?:u200D(?:[u2642u2640]uFE0F?))?|[uDD3DuDD3EuDD39](?:(?:uD83C(?:[uDFFB-uDFFF](?:u200D(?:[u2642u2640]uFE0F?))?)|u200D(?:[u2642u2640]uFE0F?)))?|[uDD33uDDB5uDDB6uDD1EuDD18uDD19uDD1BuDD1CuDD1AuDD1FuDD32](?:uD83C[uDFFB-uDFFF])?|[uDD23uDD70uDD17uDD29uDD14uDD28uDD10uDD24uDD11uDD2FuDD75uDD76uDD2AuDD2CuDD12uDD15uDD22uDD2EuDD27uDD20uDD21uDD73uDD74uDD7AuDD25uDD2BuDD2DuDDD0uDD13uDD16uDD3AuDD1DuDDB0-uDDB3uDDE0uDDB4uDDB7uDDE1uDD7DuDD7CuDDE3-uDDE6uDD7EuDD7FuDDE2uDD8DuDD8AuDD9DuDD81uDD84uDD93uDD8CuDD99uDD92uDD8FuDD9BuDD94uDD87uDD98uDDA1uDD83uDD85uDD86uDDA2uDD89uDD9AuDD9CuDD8EuDD95uDD96uDD88uDD80uDD9EuDD90uDD91uDD8BuDD97uDD82uDD9FuDDA0uDD40uDD6DuDD5DuDD65uDD51uDD54uDD55uDD52uDD6CuDD66uDD5CuDD50uDD56uDD68uDD6FuDD5EuDDC0uDD69uDD53uDD6AuDD59uDD5AuDD58uDD63uDD57uDDC2uDD6BuDD6EuDD5F-uDD61uDDC1uDD67uDD5BuDD42uDD43uDD64uDD62uDD44uDDEDuDDF1uDDF3uDDE8uDDE7uDD47-uDD49uDD4EuDD4FuDD4DuDD4AuDD4BuDD45uDD4CuDDFFuDDE9uDDF8uDD41uDDEEuDDFEuDDF0uDDF2uDDEA-uDDECuDDEFuDDF4-uDDF7uDDF9-uDDFD])|[u263Au2639u2620]uFE0F?|uD83C(?:uDF85(?:uD83C[uDFFB-uDFFF])?|uDFC3(?:(?:uD83C(?:[uDFFB-uDFFF](?:u200D(?:[u2642u2640]uFE0F?))?)|u200D(?:[u2642u2640]uFE0F?)))?|[uDFC7uDFC2](?:uD83C[uDFFB-uDFFF])?|uDFCC(?:(?:uFE0F(?:u200D(?:[u2642u2640]uFE0F?))?|uD83C(?:[uDFFB-uDFFF](?:u200D(?:[u2642u2640]uFE0F?))?)|u200D(?:[u2642u2640]uFE0F?)))?|[uDFC4uDFCA](?:(?:uD83C(?:[uDFFB-uDFFF](?:u200D(?:[u2642u2640]uFE0F?))?)|u200D(?:[u2642u2640]uFE0F?)))?|uDFCB(?:(?:uFE0F(?:u200D(?:[u2642u2640]uFE0F?))?|uD83C(?:[uDFFB-uDFFF](?:u200D(?:[u2642u2640]uFE0F?))?)|u200D(?:[u2642u2640]uFE0F?)))?|[uDFCEuDFCDuDFF5uDF36uDF7DuDFD4-uDFD6uDFDC-uDFDFuDFDBuDFD7uDFD8uDFDAuDFD9uDF21uDF24-uDF2CuDF97uDF9FuDF96uDF99-uDF9BuDF9EuDFF7uDD70uDD71uDD7EuDD7FuDE02uDE37]uFE0F?|uDFF4(?:(?:u200Du2620uFE0F?|uDB40uDC67uDB40uDC62uDB40(?:uDC65uDB40uDC6EuDB40uDC67uDB40uDC7F|uDC73uDB40uDC63uDB40uDC74uDB40uDC7F|uDC77uDB40uDC6CuDB40uDC73uDB40uDC7F)))?|uDFF3(?:(?:uFE0F(?:u200DuD83CuDF08)?|u200DuD83CuDF08))?|uDDE6uD83C[uDDE8-uDDECuDDEEuDDF1uDDF2uDDF4uDDF6-uDDFAuDDFCuDDFDuDDFF]|uDDE7uD83C[uDDE6uDDE7uDDE9-uDDEFuDDF1-uDDF4uDDF6-uDDF9uDDFBuDDFCuDDFEuDDFF]|uDDE8uD83C[uDDE6uDDE8uDDE9uDDEB-uDDEEuDDF0-uDDF5uDDF7uDDFA-uDDFF]|uDDE9uD83C[uDDEAuDDECuDDEFuDDF0uDDF2uDDF4uDDFF]|uDDEAuD83C[uDDE6uDDE8uDDEAuDDECuDDEDuDDF7-uDDFA]|uDDEBuD83C[uDDEE-uDDF0uDDF2uDDF4uDDF7]|uDDECuD83C[uDDE6uDDE7uDDE9-uDDEEuDDF1-uDDF3uDDF5-uDDFAuDDFCuDDFE]|uDDEDuD83C[uDDF0uDDF2uDDF3uDDF7uDDF9uDDFA]|uDDEEuD83C[uDDE8-uDDEAuDDF1-uDDF4uDDF6-uDDF9]|uDDEFuD83C[uDDEAuDDF2uDDF4uDDF5]|uDDF0uD83C[uDDEAuDDEC-uDDEEuDDF2uDDF3uDDF5uDDF7uDDFCuDDFEuDDFF]|uDDF1uD83C[uDDE6-uDDE8uDDEEuDDF0uDDF7-uDDFBuDDFE]|uDDF2uD83C[uDDE6uDDE8-uDDEDuDDF0-uDDFF]|uDDF3uD83C[uDDE6uDDE8uDDEA-uDDECuDDEEuDDF1uDDF4uDDF5uDDF7uDDFAuDDFF]|uDDF4uD83CuDDF2|uDDF5uD83C[uDDE6uDDEA-uDDEDuDDF0-uDDF3uDDF7-uDDF9uDDFCuDDFE]|uDDF6uD83CuDDE6|uDDF7uD83C[uDDEAuDDF4uDDF8uDDFAuDDFC]|uDDF8uD83C[uDDE6-uDDEAuDDEC-uDDF4uDDF7-uDDF9uDDFBuDDFD-uDDFF]|uDDF9uD83C[uDDE6uDDE8uDDE9uDDEB-uDDEDuDDEF-uDDF4uDDF7uDDF9uDDFBuDDFCuDDFF]|uDDFAuD83C[uDDE6uDDECuDDF2uDDF3uDDF8uDDFEuDDFF]|uDDFBuD83C[uDDE6uDDE8uDDEAuDDECuDDEEuDDF3uDDFA]|uDDFCuD83C[uDDEBuDDF8]|uDDFDuD83CuDDF0|uDDFEuD83C[uDDEAuDDF9]|uDDFFuD83C[uDDE6uDDF2uDDFC]|[uDFFB-uDFFFuDF92uDFA9uDF93uDF38-uDF3CuDF37uDF31-uDF35uDF3E-uDF43uDF47-uDF53uDF45uDF46uDF3DuDF44uDF30uDF5EuDF56uDF57uDF54uDF5FuDF55uDF2D-uDF2FuDF73uDF72uDF7FuDF71uDF58-uDF5DuDF60uDF62-uDF65uDF61uDF66-uDF6AuDF82uDF70uDF6B-uDF6FuDF7CuDF75uDF76uDF7EuDF77-uDF7BuDF74uDFFAuDF0D-uDF10uDF0BuDFE0-uDFE6uDFE8-uDFEDuDFEFuDFF0uDF01uDF03-uDF07uDF09uDF0CuDFA0-uDFA2uDFAAuDF11-uDF20uDF00uDF08uDF02uDF0AuDF83uDF84uDF86-uDF8BuDF8D-uDF91uDF80uDF81uDFABuDFC6uDFC5uDFC0uDFD0uDFC8uDFC9uDFBEuDFB3uDFCFuDFD1-uDFD3uDFF8uDFA3uDFBDuDFBFuDFAFuDFB1uDFAEuDFB0uDFB2uDCCFuDC04uDFB4uDFADuDFA8uDFBCuDFB5uDFB6uDFA4uDFA7uDFB7-uDFBBuDFA5uDFACuDFEEuDFF9uDFE7uDFA6uDD8EuDD91-uDD9AuDE01uDE36uDE2FuDE50uDE39uDE1AuDE32uDE51uDE38uDE34uDE33uDE3AuDE35uDFC1uDF8C])|u26F7uFE0F?|u26F9(?:(?:uFE0F(?:u200D(?:[u2642u2640]uFE0F?))?|uD83C(?:[uDFFB-uDFFF](?:u200D(?:[u2642u2640]uFE0F?))?)|u200D(?:[u2642u2640]uFE0F?)))?|[u261Du270C](?:(?:uD83C[uDFFB-uDFFF]|uFE0F))?|[u270Bu270A](?:uD83C[uDFFB-uDFFF])?|u270D(?:(?:uD83C[uDFFB-uDFFF]|uFE0F))?|[u2764u2763u26D1u2618u26F0u26E9u2668u26F4u2708u23F1u23F2u2600u2601u26C8u2602u26F1u2744u2603u2604u26F8u2660u2665u2666u2663u260Eu2328u2709u270Fu2712u2702u26CFu2692u2694u2699u2696u26D3u2697u26B0u26B1u26A0u2622u2623u2B06u2197u27A1u2198u2B07u2199u2B05u2196u2195u2194u21A9u21AAu2934u2935u269Bu267Eu2721u2638u262Fu271Du2626u262Au262Eu25B6u23EDu23EFu25C0u23EEu23F8-u23FAu23CFu2640u2642u2695u267Bu269Cu2611u2714u2716u303Du2733u2734u2747u203Cu2049u3030u00A9u00AEu2122]uFE0F?|[u0023u002Au0030-u0039](?:uFE0Fu20E3|u20E3)|[u2139u24C2u3297u3299u25AAu25ABu25FBu25FC]uFE0F?|[u2615u26EAu26F2u26FAu26FDu2693u26F5u231Bu23F3u231Au23F0u2B50u26C5u2614u26A1u26C4u2728u26BDu26BEu26F3u267Fu26D4u2648-u2653u26CEu23E9-u23ECu2B55u2705u274Cu274Eu2795-u2797u27B0u27BFu2753-u2755u2757u25FDu25FEu2B1Bu2B1Cu26AAu26AB])";

请参阅regex demo(尽管使用了JS选项,正则表达式在C#中产生相同的结果.)

该模式是从表情符号列表中动态创建的,并使用正则表达式进行收缩,并通过几个后处理步骤进一步缩小模式.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读