【发布时间】:2013-01-09 17:46:37
【问题描述】:
我想要一个正则表达式来匹配 C# 中的表情符号字符。如果重要的话,那就是来自 Windows 8 触摸键盘的字符,即。 ??? ??????????
【问题讨论】:
我想要一个正则表达式来匹配 C# 中的表情符号字符。如果重要的话,那就是来自 Windows 8 触摸键盘的字符,即。 ??? ??????????
【问题讨论】:
似乎有一个 Emoji-to-Unicode 标准:
http://en.wikipedia.org/wiki/Emoji#Emoji_in_the_Unicode_standard
因此,您可能可以匹配每个 Unicode 范围。例如,要匹配从 U+1F30x 到 U+1F5Fx 的范围,您可以使用 [\u1F30-\u1F5F] 等。
【讨论】:
\p{So} .
您应该能够插入 unicode 代码值来表示它们:
Regex regEx = new Regex(@"\uXXXX\uYYYY");
XXXX 和 YYYY 是您要查找的字符的 unicode 值(当然要更改正则表达式以满足您的需要)。
【讨论】:
我使用 Unicode 通用类别和命名块来解决这个问题,并在接受的答案下方的简短评论中对其进行了描述:
我试图匹配 ✅ 和 ? 并看到了这个问题。但答案 没有解决我的问题。最后我将它用于正则表达式模式
\p{So}
有关命名块和 Unicode 通用类别的更多信息,请访问Microsoft Regular Expression Help Topic。
您可以为 BasicLatin、ExtendedLatin、Arabic、Cyrilic 和...使用不同的名称
还有与S 系列匹配的更具体的符号,例如货币符号或数学符号。
【讨论】: