Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
169 views
in Technique[技术] by (71.8m points)

c# - Detecting *all* emojis

Right now I'm using this piece of code :

public static bool ContainsEmoji(this string text)
{
    Regex rgx = new Regex(@"p{Cs}");
    return rgx.IsMatch(text);
}

And it's being somewhat helpful.

Most of them appear to be detected, but some aren't.

Here's a reference list to help : http://unicode.org/emoji/charts/full-emoji-list.html

All the smiley faces appear to be fine, but these specific emojis do not get caught by the Regex :

1920 U+2614 ? umbrella with rain drops

1921 U+26F1 ? umbrella on ground

1922 U+26A1 ? high voltage

1923 U+2744 ? snowflake

On the keyboard these are not close to each other, but in the list they are following each other, so I just assumed that there was a point where it would start not working in the emoji list, and it's not really verifying. From 1905 (weather-like emojis), going down, some are caught in the regex, some aren't. There does not seem to be any rule.

I can't afford to just go full ASCII because I need people to enter characters such as cyrillic, but I can't accept emojis specifically. I have no clue how to go forward from here.

I read the MSDN docs about surrogates high/low pairs, but at this stage this is very confusing to me, and I think some push in the right direction would go a long way.

Thank you very much for your time :)

Question&Answers:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You may use the following regex to match all 4590 emoji characters defined in the Emoji Keyboard/Display Test Data for UTR #51 (Version: 13.1) file:

var EmojiPattern = @"[#*0-9]uFE0F?u20E3|?uFE0F?|[?u203Cu2049u2122u2139u2194-u2199u21A9u21AA]uFE0F?|[u231Au231B]|[u2328u23CF]uFE0F?|[u23E9-u23EC]|[u23ED-u23EF]uFE0F?|u23F0|[u23F1u23F2]uFE0F?|u23F3|[u23F8-u23FAu24C2u25AAu25ABu25B6u25C0u25FBu25FC]uFE0F?|[u25FDu25FE]|[u2600-u2604u260Eu2611]uFE0F?|[u2614u2615]|u2618uFE0F?|u261D(?:uD83C[uDFFB-uDFFF]|uFE0F)?|[u2620u2622u2623u2626u262Au262Eu262Fu2638-u263Au2640u2642]uFE0F?|[u2648-u2653]|[u265Fu2660u2663u2665u2666u2668u267Bu267E]uFE0F?|u267F|u2692uFE0F?|u2693|[u2694-u2697u2699u269Bu269Cu26A0]uFE0F?|u26A1|u26A7uFE0F?|[u26AAu26AB]|[u26B0u26B1]uFE0F?|[u26BDu26BEu26C4u26C5]|u26C8uFE0F?|u26CE|[u26CFu26D1u26D3]uFE0F?|u26D4|u26E9uFE0F?|u26EA|[u26F0u26F1]uFE0F?|[u26F2u26F3]|u26F4uFE0F?|u26F5|[u26F7u26F8]uFE0F?|u26F9(?:u200D[u2640u2642]uFE0F?|uD83C[uDFFB-uDFFF](?:u200D[u2640u2642]uFE0F?)?|uFE0F(?:u200D[u2640u2642]uFE0F?)?)?|[u26FAu26FD]|u2702uFE0F?|u2705|[u2708u2709]uFE0F?|[u270Au270B](?:uD83C[uDFFB-uDFFF])?|[u270Cu270D](?:uD83C[uDFFB-uDFFF]|uFE0F)?|u270FuFE0F?|[u2712u2714u2716u271Du2721]uFE0F?|u2728|[u2733u2734u2744u2747]uFE0F?|[u274Cu274Eu2753-u2755u2757]|u2763uFE0F?|u2764(?:u200D(?:uD83DuDD25|uD83EuDE79)|uFE0F(?:u200D(?:uD83DuDD25|uD83EuDE79))?)?|[u2795-u2797]|u27A1uFE0F?|[u27B0u27BF]|[u2934u2935u2B05-u2B07]uFE0F?|[u2B1Bu2B1Cu2B50u2B55]|[u3030u303Du3297u3299]uFE0F?|uD83C(?:[uDC04uDCCF]|[uDD70uDD71uDD7EuDD7F]uFE0F?|[uDD8EuDD91-uDD9A]|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]|uDE01|uDE02uFE0F?|[uDE1AuDE2FuDE32-uDE36]|uDE37uFE0F?|[uDE38-uDE3AuDE50uDE51uDF00-uDF20]|[uDF21uDF24-uDF2C]uFE0F?|[uDF2D-uDF35]|uDF36uFE0F?|[uDF37-uDF7C]|uDF7DuFE0F?|[uDF7E-uDF84]|uDF85(?:uD83C[uDFFB-uDFFF])?|[uDF86-uDF93]|[uDF96uDF97uDF99-uDF9BuDF9EuDF9F]uFE0F?|[uDFA0-uDFC1]|uDFC2(?:uD83C[uDFFB-uDFFF])?|[uDFC3uDFC4](?:u200D[u2640u2642]uFE0F?|uD83C[uDFFB-uDFFF](?:u200D[u2640u2642]uFE0F?)?)?|[uDFC5uDFC6]|uDFC7(?:uD83C[uDFFB-uDFFF])?|[uDFC8uDFC9]|uDFCA(?:u200D[u2640u2642]uFE0F?|uD83C[uDFFB-uDFFF](?:u200D[u2640u2642]uFE0F?)?)?|[uDFCBuDFCC](?:u200D[u2640u2642]uFE0F?|uD83C[uDFFB-uDFFF](?:u200D[u2640u2642]uFE0F?)?|uFE0F(?:u200D[u2640u2642]uFE0F?)?)?|[uDFCDuDFCE]uFE0F?|[uDFCF-uDFD3]|[uDFD4-uDFDF]uFE0F?|[uDFE0-uDFF0]|uDFF3(?:u200D(?:u26A7uFE0F?|uD83CuDF08)|uFE0F(?:u200D(?:u26A7uFE0F?|uD83CuDF08))?)?|uDFF4(?:u200Du2620uFE0F?|uDB40uDC67uDB40uDC62uDB40(?:uDC65uDB40uDC6EuDB40uDC67|uDC73uDB40uDC63uDB40uDC74|uDC77uDB40uDC6CuDB40uDC73)uDB40uDC7F)?|[uDFF5uDFF7]uFE0F?|[uDFF8-uDFFF])|uD83D(?:[uDC00-uDC07]|uDC08(?:u200Du2B1B)?|[uDC09-uDC14]|uDC15(?:u200DuD83EuDDBA)?|[uDC16-uDC3A]|uDC3B(?:u200Du2744uFE0F?)?|[uDC3C-uDC3E]|uDC3FuFE0F?|uDC40|uDC41(?:u200DuD83DuDDE8uFE0F?|uFE0F(?:u200DuD83DuDDE8uFE0F?)?)?|[uDC42uDC43](?:uD83C[uDFFB-uDFFF])?|[uDC44uDC45]|[uDC46-uDC50](?:uD83C[uDFFB-uDFFF])?|[uDC51-uDC65]|[uDC66uDC67](?:uD83C[uDFFB-uDFFF])?|uDC68(?:u200D(?:[u2695u2696u2708]uFE0F?|u2764uFE0F?u200DuD83D(?:uDC8Bu200DuD83D)?uDC68|uD83C[uDF3EuDF73uDF7CuDF93uDFA4uDFA8uDFEBuDFED]|uD83D(?:uDC66(?:u200DuD83DuDC66)?|uDC67(?:u200DuD83D[uDC66uDC67])?|[uDC68uDC69]u200DuD83D(?:uDC66(?:u200DuD83DuDC66)?|uDC67(?:u200DuD83D[uDC66uDC67])?)|[uDCBBuDCBCuDD27uDD2CuDE80uDE92])|uD83E[uDDAF-uDDB3uDDBCuDDBD])|uD83C(?:uDFFB(?:u200D(?:[u2695u2696u2708]uFE0F?|u2764uFE0F?u200DuD83D(?:uDC8Bu200DuD83D)?uDC68uD83C[uDFFB-uDFFF]|uD83C[uDF3EuDF73uDF7CuDF93uDFA4uDFA8uDFEBuDFED]|uD83D[uDCBBuDCBCuDD27uDD2CuDE80uDE92]|uD83E(?:uDD1Du200DuD83DuDC68uD83C[uDFFC-uDFFF]|[uDDAF-uDDB3uDDBCuDDBD])))?|uDFFC(?:u200D(?:[u2695u2696u2708]uFE0F?|u2764uFE0F?u200DuD83D(?:uDC8Bu200DuD83D)?uDC68uD83C[uDFFB-uDFFF]|uD83C[uDF3EuDF73uDF7CuDF93uDFA4uDFA8uDFEBuDFED]|uD83D[uDCBBuDCBCuDD27uDD2CuDE80uDE92]|uD83E(?:uDD1Du200DuD83DuDC68uD83C[uDFFBuDFFD-uDFFF]|[uDDAF-uDDB3uDDBCuDDBD])))?|uDFFD(?:u200D(?:[u2695u2696u2708]uFE0F?|u2764uFE0F?u200DuD83D(?:uDC8Bu200DuD83D)?uDC68uD83C[uDFFB-uDFFF]|uD83C[uDF3EuDF73uDF7CuDF93uDFA4uDFA8uDFEBuDFED]|uD83D[uDCBBuDCBCuDD27uDD2CuDE80uDE92]|uD83E(?:uDD1Du200DuD83DuDC68uD83C[uDFFBuDFFCuDFFEuDFFF]|[uDDAF-uDDB3uDDBCuDDBD])))?|uDFFE(?:u200D(?:[u2695u2696u2708]uFE0F?|u2764uFE0F?u200DuD83D(?:uDC8Bu200DuD83D)?uDC68uD83C[uDFFB-uDFFF]|uD83C[uDF3EuDF73uDF7CuDF93uDFA4uDFA8uDFEBuDFED]|uD83D[uDCBBuDCBCuDD27uDD2CuDE80uDE92]|uD83E(?:uDD1Du200DuD83DuDC68uD83C[uDFFB-uDFFDuDFFF]|[uDDAF-uDDB3uDDBCuDDBD])))?|uDFFF(?:u200D(?:[u2695u2696u2708]uFE0F?|u2764uFE0F?u200DuD83D(?:uDC8Bu200DuD83D)?uDC68uD83C[uDFFB-uDFFF]|uD83C[uDF3EuDF73uDF7CuDF93uDFA4uDFA8uDFEBuDFED]|uD83D[uDCBBuDCBCuDD27uDD2CuDE80uDE92]|uD83E(?:uDD1Du200DuD83DuDC68uD83C[uDFFB-uDFFE]|[uDDAF-uDDB3uDDBCuDDBD])))?))?|uDC69(?:u200D(?:[u2695u2696u2708]uFE0F?|u2764uFE0F?u200DuD83D(?:uDC8Bu200DuD83D)?[uDC68uDC69]|uD83C[uDF3EuDF73uDF7CuDF93uDFA4uDFA8uDFEBuDFED]|uD83D(?:uDC66(?:u200DuD83DuDC66)?|uDC67(?:u200DuD83D[uDC66uDC67])?|uDC69u200DuD83D(?:uDC66(?:u200DuD83DuDC66)?|uDC67(?:u200DuD83D[uDC66uDC67])?)|[uDCBBuDCBCuDD27uDD2CuDE80uDE92])|uD83E[uDDAF-uDDB3uDDBCuDDBD])|uD83C(?:uDFFB(?:u200D(?:[u2695u2696u2708]uFE0F?|u2764uFE0F?u200DuD83D(?:[uDC68uDC69]uD83C[uDFFB-uDFFF]|uDC8Bu200DuD83D[uDC68uDC69]uD83C[uDFFB-uDFFF])|uD83C[uDF3EuDF73uDF7CuDF93uDFA4uDFA8uDFEBuDFED]|uD83D[uDCBBuDCBCuDD27uDD2CuDE80uDE92]|uD83E(?:uDD1Du200DuD83D[uDC68uDC69]uD83C[uDFFC-uDFFF]|[uDDAF-uDDB3uDDBCuDDBD])))?|uDFFC(?:u200D(?:[u2695u2696u2708]uFE0F?|u2764uFE0F?u200DuD83D(?:[uDC68uDC69]uD83C[uDFFB-uDFFF]|uDC8Bu200DuD83D[uDC68uDC69]uD83C[uDFFB-uDFFF])|uD83C[uDF3EuDF73uDF7CuDF93uDFA4uDFA8uDFEBuDFED]|uD83D[uDCBBuDCBCuDD27uDD2CuDE80uDE92]|uD83E(?:uDD1Du200DuD83D[uDC68uDC69]uD83C[uDFFBuDFFD-uDFFF]|[uDDAF-uDDB3uDDBCuDDBD])))?|uDFFD(?:u200D(?:[u2695u2696u2708]uFE0F?|u2764uFE0F?u200DuD83D(?:[uDC68uDC69]uD83C[uDFFB-uDFFF]|uDC8Bu200DuD83D[uDC68uDC69]uD83C[uDFFB-uDFFF])|uD83C[uDF3EuDF73uDF7CuDF93uDFA4uDFA8uDFEBuDFED]|uD83D[uDCBBuDCBCuDD27uDD2CuDE80uDE92]|uD83E(?:uDD1Du200DuD83D[uDC68uDC69]uD83C[uDFFBuDFFCuDFFEuDFFF]|[uDDAF-uDDB3uDDBCuDDBD])))?|uDFFE(?:u200D(?:[u2695u2696u2708]uFE0F?|u2764uFE0F?u200DuD83D(?:[uDC68uDC69]uD83C[uDFFB-uDFFF]|uDC8Bu200DuD83D[uDC68uDC69]uD83C[uDFFB-uDFFF])|uD83C[uDF3EuDF73uDF7CuDF93uDFA4uDFA8uDFEBuDFED]|uD83D[uDCBBuDCBCuDD27uDD2CuDE80uDE92]|uD83E(?:uDD1Du200DuD83D[uDC68uDC69]uD83C[uDFFB-uDFFDuDFFF]|[uDDAF-uDDB3uDDBCuDDBD])))?|uDFFF(?:u200D(?:[u2695u2696u2708]uFE0F?|u2764uFE0F?u200DuD83D(?:[uDC68uDC69]uD83C[uDFFB-uDFFF]|uDC8Bu200DuD83D[uDC68uDC69]uD83C[uDFFB-uDFFF])|uD83C[uDF3EuDF73uDF7CuDF93uDFA4uDFA8uDFEBuDFED]|uD83D[uDCBBuDCBCuDD27uDD2CuDE80uDE92]|uD83E(?:uDD1Du200DuD83D[uDC68uDC69]uD83C[uDFFB-uDFFE]|[uDDAF-uDDB3uDDBCuDDBD])))?))?|uDC6A|[uDC6B-uDC6D](?:uD83C[uDFFB-uDFFF])?|uDC6E(?:u200D[u2640u2642]uFE0F?|uD83C[uDFFB-uDFFF](?:u200D[u2640u2642]uFE0F?)?)?|uDC6F(?:u200D[u2640u2642]uFE0F?)?|[uDC70uDC71](?:u200D[u2640u2642]uFE0F?|uD83C[uDFFB-uDFFF](?:u200D[u2640u2642]uFE0F?)?)?|uDC72(?:uD83C[uDFFB-uDFFF])?|uDC73(?:u200D[u2640u2642]uFE0F?|uD83C[uDFFB-uDFFF](?:u200D[u2640u2642]uFE0F?)?)?|[uDC74-uDC76](?:uD83C[uDFFB-uDFFF])?|uDC77(?:u200D[u2640u2642]uFE0F?|uD83C[uDFFB-uDFFF](?:u200D[u2640u2642]uFE0F?)?)?|uDC78(?:uD83C[uDFFB-uDFFF])?|[uDC79-uDC7B]|uDC7C(?:uD83C[uDFFB-uDFFF])?|[uDC7D-uDC80]|[uDC81uDC82](?:u200D[u2640u2642]uFE0F?|uD83C[uDFFB-uDFFF](?:u200D[u2640u2642]uFE0F?)?)?|uDC83(?:uD83C[uDFFB-uDFFF])?|uDC84|uDC85(?:uD83C[uDFFB-uDFFF])?|[uDC86uDC87](?:u200D[u2640u2642]uFE0F?|uD83C[uDFFB-uDFFF](?:u200D[u2640u2642]uFE0F?)?)?|[uDC88-uDC8E]|uDC8F(?:uD83C[uDFFB-uDFFF])?|uDC90|uDC91(?:uD83C[uDFFB-uDFFF])?|[uDC92-uDCA9]|uDCAA(?:uD83C[uDFFB-uDFFF])?|[uDCAB-uDCFC]|uDCFDuFE0F?|[uDCFF-uDD3D]|[uDD49uDD4A]uFE0F?|[uDD4B-uDD4EuDD50-uDD67]|[uDD6FuDD70uDD73]uFE0F?|uDD74(?:uD83C[uDFFB-uDFFF]|uFE0F)?|uDD75(?:u200D[u2640u2642]uFE0F?|uD83C[uDFFB-uDFFF](?:u200D[u2640u2642]uFE0F?)?|uFE0F(?:u200D[u2640u2642]uFE0F?)?)?|[uDD76-uDD79]uFE0F?|uDD7A(?:uD83C[uDFFB-uDFFF])?|[uDD87uDD8A-uDD8D]uFE0F?|uDD90(?:uD83C[uDFFB-uDFFF]|uFE0F)?|[uDD95uDD96](?:uD83C[uDFFB-uDFFF])?|uDDA4|[uDDA5uDDA8uDDB1uDDB2uDDBCuDDC2-uDDC4uDDD1-uDDD3uDDDC-uDDDEuDDE1uDDE3uDDE8uDDEFuDDF3uDDFA]uFE0F?|[uDDFB-uDE2D]|uDE2E(?:u200DuD83DuDCA8)?|[uDE2F-uDE34]|uDE35(?:u200DuD83DuDCAB)?|uDE36(?:u200DuD83CuDF2BuFE0F?)?|[uDE37-uDE44]|[uDE45-uDE47](?:u200D[u2640u2642]uFE0F?|uD83C[uDFFB-uDFFF](?:u200D[u2640u2642]uFE0F?)?)?|[uDE48-uDE4A]|uDE4B(?:u200D[u2640u2642]uFE0F?|uD83C[uDFFB-uDFFF](?:u200D[u2640u2642]uFE0F?)?)?|uDE4C(?:uD83C[uDFFB-uDFFF])?|[uDE4DuDE4E](?:u200D[u2640u2642]uFE0F?|uD83C[uDFFB-uDFFF](?:u200D[u2640u2642]uFE0F?)?)?|uDE4F(?:uD83C[uDFFB-uDFFF])?|[uDE80-uDEA2]|uDEA3(?:u200D[u2640u2642]uFE0F?|uD83C[uDFFB-uDFFF](?:u200D[u2640u2642]uFE0F?)?)?|[uDEA4-uDEB3]|[uDEB4-uDEB6](?:u200D[u2640u2642]uFE0F?|uD83C[uDFFB-uDFFF](?:u200D[u2640u2642]uFE0F?)?)?|[uDEB7-uDEBF]|uDEC0(?:uD83C[uDFFB-uDFFF])?|[uDEC1-uDEC5]|uDECBuFE0F?|uDECC(?:uD83C[uDFFB-uDFFF])?|[uDECD-uDECF]uFE0F?|[uDED0-uDED2uDED5-uDED7]|[uDEE0-uDEE5uDEE9]uFE0F?|[uDEEBuDEEC]|[uDEF0uDEF3]uFE0F?|[uDEF4-uDEFCuDFE0-uDFEB])|uD83E(?:uDD0C(?:uD83C[uDFFB-uDFFF])?|[uDD0DuDD0E]|uDD0F(?:uD83C[uDFFB-uDFFF])?|[uDD10-uDD17]|[uDD18-uDD1C](?:uD83C[uDFFB-uDFFF])?|uDD1D|[uDD1EuDD1F](?:uD83C[uDFFB-uDFFF])?|[uDD20-uDD25]|uDD26(?:u200D[u2640u2642]uFE0F?|uD83C[uDFFB-uDFFF](?:u200D[u2640u2642]uFE0F?)?)?|[uDD27-uDD2F]|[uDD30-uDD34](?:uD83C[uDFFB-uDFFF])?|uDD35(?:u200D[u2640u2642]uFE0F?|uD83C[uDFFB-uDFFF](?:u200D[u2640u2642]uFE0F?)?)?|uDD36(?:uD83C[uDFFB-uDFFF])?|[uDD37-uDD39](?:u200D[u2640u2642]uFE0F?|uD83C[uDFFB-uDFFF](?:u200D[u2640u2642]uFE0F?)?)?|uDD3A|uDD3C(?:u200D[u2640u2642]uFE0F?)?|[uDD3DuDD3E](?:u200D[u2640u2642]uFE0F?|uD83C[uDFFB-uDFFF](?:u200D[u2640u2642]uFE0F?)?)?|[uDD3F-uDD45uDD47-uDD76]|uDD77(?:uD83C[uDFFB-uDFFF])?|[uDD78uDD7A-uDDB4]|[uDDB5uDDB6](?:uD83C[uDFFB-uDFFF])?|uDDB7|[uDDB8uDDB9](?:u200D[u2640u2642]uFE0F?|uD83C[uDFFB-uDFFF](?:u200D[u2640u2642]uFE0F?)?)?|uDDBA|uDDBB(?:uD83C[uDFFB-uDFFF])?|[uDDBC-uDDCB]|[uDDCD-uDDCF](?:u200D[u2640u2642]uFE0F?|uD83C[uDFFB-uDFFF](?:u200D[u2640u2642]uFE0F?)?)?|uDDD0|uDDD1(?:u200D(?:[u2695u2696u2708]uFE0F?|uD83C[uDF3EuDF73uDF7CuDF84uDF93uDFA4uDFA8uDFEBuDFED]|uD83D[uDCBBuDCBCuDD27uDD2CuDE80uDE92]|uD83E(?:uDD1Du200DuD83EuDDD1|[uDDAF-uDDB3uDDBCuDDBD]))|uD83C(?:uDFFB(?:u200D(?:[u2695u2696u2708]uFE0F?|u2764uFE0F?u200D(?:uD83DuDC8Bu200D)?uD83EuDDD1uD83C[uDFFC-uDFFF]|uD83C[uDF3EuDF73uDF7CuDF84uDF93uDFA4uDFA8uDFEBuDFED]|uD83D[uDCBBuDCBCuDD27uDD2CuDE80uDE92]|uD83E(?:uDD1Du200DuD83EuDDD1uD83C[uDFFB-uDFFF]|[uDDAF-uDDB3uDDBCuDDBD])))?|uDFFC(?:u200D(?:[u2695u2696u2708]uFE0F?|u2764uFE0F?u200D(?:uD83DuDC8Bu200D)?uD83EuDDD1uD83C[uDFFBuDFFD-uDFFF]|uD83C[uDF3EuDF73uDF7CuDF84uDF93uDFA4uDFA8uDFEBuDFED]|uD83D[uDCBBuDCBCuDD27uDD2CuDE80uDE92]|uD83E(?:uDD1Du200DuD83EuDDD1uD83C[uDFFB-uDFFF]|[uDDAF-uDDB3uDDBCuDDBD])))?|uDFFD(?:u200D(?:[u269

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...