gpt4 book ai didi

c# - 如何限制文本框的表情符号范围 u2600-u26FF

转载 作者:行者123 更新时间:2023-11-30 20:55:44 25 4
gpt4 key购买 nike

我想使用 RegexEmojis 限制在范围 u2600-u26FF 的文本框中。

我试过了,但是失败了。

private static readonly Regex regexEmoji = new Regex(@"[\u1F600-\u1F6FF]|[\u2600-\u26FF]");

我想限制用户在 WP8 中添加表情符号

最佳答案

因为 .NET 不支持正则表达式中的代理对。您必须手动分解它们。说清楚一点,.NET中一个char是16位的,但是1F600需要两个char。所以解决方案是“手动”分解它们。

private static readonly Regex regexEmoji = new Regex(@"\uD83D[\uDE00-\uDEFF]|[\u2600-\u26FF]");

我希望我已经正确分解了它们。

我用过这个网站:http://www.trigeminal.com/16to32AndBack.asp

分解低范围和高范围\u1F600 ==\uD83D\uDE00\u1F6FF ==\uD83D\uDEFF。代理对的第一部分是“固定的”:\uD83D,另一部分是一个范围。

示例代码 ( http://ideone.com/0o6qbt )

string str = "Hello world 😀🙏☀⛿"; // 🌀 1F600 GRINNING FACE, 1F64F PERSON WITH FOLDED HANDS, 2600 BLACK SUN WITH RAYS, 26FF WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE
Regex regexEmoji = new Regex(@"\uD83D[\uDE00-\uDEFF]|[\u2600-\u26FF]");
MatchCollection matches = regexEmoji.Matches(str);
int count = matches.Count;
Console.WriteLine(count);

如果您想要范围1F300-1F6FF...它是D83C DF00D83C DFFFD83D uDC00D83D DEFF

string str = "Hello world 🌀😀🙏☀⛿"; // 1F300 CYCLONE, 1F600 GRINNING FACE, 1F64F PERSON WITH FOLDED HANDS, 2600 BLACK SUN WITH RAYS, 26FF WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE
Regex regexEmoji = new Regex(@"\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDEFF]|[\u2600-\u26FF]");

关于c# - 如何限制文本框的表情符号范围 u2600-u26FF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18102769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com