C#正则表达式匹配表情符号

时间:2013-01-25 17:35:56

标签: c# regex emoji

我想要一个正则表达式来匹配C#中的表情符号字符。如果重要,那就是来自Windows 8触控键盘的字符即。

3 个答案:

答案 0 :(得分:1)

似乎有一个Emoji-to-Unicode标准:

http://en.wikipedia.org/wiki/Emoji#Emoji_in_the_Unicode_standard

因此,您可以匹配每个Unicode范围。例如,要匹配从U + 1F30x到U + 1F5Fx的范围,您可以使用[\u1F30-\u1F5F]等。

答案 1 :(得分:0)

您应该能够插入unicode代码值来表示它们:

Regex regEx = new Regex(@"\uXXXX\uYYYY");

XXXXYYYY是您要查找的字符的unicode值(当然,更改正则表达式以满足您的需求)。

答案 2 :(得分:0)

针对此问题,我使用了Unicode常规类别和命名块,并在接受的答案下方的简短评论中对其进行了描述:

我试图匹配✅和?,并看到了这个问题。但是答案 没有解决我的问题。最后我将它用于正则表达式模式 \p{So}

有关命名块和Unicode常规类别的更多信息,请访问Microsoft Regular Expression Help Topic

您可以对BasicLatin,ExtendedLatin,阿拉伯语,Cyrilic和...使用不同的名称 还有与S系列匹配的更具体的符号,例如货币符号或数学符号。