3

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

4

3 回答 3

3

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

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

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

于 2013-01-25T17:42:37.823 回答
0

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

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

您要查找的字符的 unicode 值在哪里XXXX以及在哪里YYYY(当然要更改正则表达式以满足您的需要)。

于 2013-01-25T17:44:03.803 回答
0

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

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

有关命名块和 Unicode 常规类别的更多信息,请访问Microsoft 正则表达式帮助主题

您可以为 BasicLatin、ExtendedLatin、Arabic、Cyrilic 和 ... 使用不同的名称,还可以使用与S家庭匹配的更具体的符号,如货币符号或数学符号。

于 2020-12-09T20:56:40.097 回答