Java 中 Emoji 的正则表达式

查看原文:Android EditText过滤换行符,回车符和空白符,以及过滤表情

一、emoji 的范围

查阅维基百科中 emoji 的说明

1.杂项符号及图形

一共有768个字符 ,范围为: U+1F300 ~ U+1F5FF,在 Java 中正则表达式为:

"[\\uD83C\\uDF00-\\uD83D\\uDDFF]"

2. 增补符号及图形

增补符号及图形中一共有82个字符,范围为: U+1F900 ~ U+1F9FF,在 Java 中正则表达式为:

"[\\uD83E\\uDD00-\\uD83E\\uDDFF]"

3. 表情符号

表情符号一共有80个字符,范围为: U+1F600 ~ U+1F64F,在 Java 中正则表达式为:

"[\\uD83D\\uDE00-\\uD83D\\uDE4F]"

4. 交通及地图符号

交通及地图符号一共有103个字符,范围为: U+1F680 ~ U+1F6FF,在 Java 中正则表达式为:

"[\\uD83D\\uDE80-\\uD83D\\uDEFF]"

5. 杂项符号

杂项符号一共有256个字符,范围为: U+2600 ~ U+26FF 或拼上 U+FE0F,在 Java 中正则表达式为:

"[\\u2600-\\u26FF]\\FE0F?"

6. 装饰符号

装饰符号一共有192个字符,范围为: U+2700 ~ U+27BF 或拼上 U+FE0F,在 Java 中正则表达式为:

"[\\u2700-\\u27BF]\\FE0F?"

7. 封闭式字母数字符号

封闭式字母数字符号中只有一个 emoji 字符,为: U+24C2 或拼上 U+FE0F,在 Java 中正则表达式为:

"\\u24C2\\uFE0F?"

8. 封闭式字母数字补充符号

封闭式字母数字补充符号包含41个 emoji 字符,其中26个属于区域指示符号

8.1 区域指示符号

区域指示符号一共有26个字符,范围为: U+1F1E6 ~ U+1F1FF,并且其中每两个字母可以代表一个国家或地区的旗帜,在 Java 中正则表达式为:

"[\\uD83C\\uDDE6-\\uD83C\\uDDFF]{1,2}"

8.2 其他封闭式字母数字补充 emoji 符号

除了区域指示符号外其他的 emoji 字符为: U+1F170、 U+1F171、 U+1F17E、 U+1F17F、 U+1F18E 和 U+1F191 ~ U+1F19A 或拼上 U+FE0F,在 Java 中正则表达式为:

"[\\uD83C\\uDD70\\uD83C\\uDD71\\uD83C\\uDD7E\\uD83C\\uDD7F\\uD83C\\uDD8E\\uD83C\\uDD91-\\uD83C\\uDD9A]\\uFE0F?"

9. 键帽符号(#⃣, *⃣ and 0⃣-9⃣)

键帽符号一共有12个字符,其组成方式为: U+0023、 U+002A 和 U+0030 ~ U+0039 12个键帽基础字符加上 U+FE0F 和 U+20E3, 如:

"\u0023\u20E3" > "#⃣""\u002A\uFE0F\u20E3" > "*⃣""\u0030\u20E3" > "0⃣""\u0039\u20E3" > "9⃣"其中 uFE0F 是可选的,所以在 Java 中正则表达式为:"[\\u0023\\u002A[\\u0030-\\u0039]]\\uFE0F?\\u20E3"

10. 箭头符号

箭头符号中有8个 emoji 字符,范围为: U+2194 ~ U+2199 和 U+21A9 ~ U+21AA 或拼上 U+FE0F,在 Java 中正则表达式为:
"[\u2194-\u2199\u21A9-\u21AA]\uFE0F?"复制代码11. 杂项符号及箭头
杂项符号及箭头中有7个 emoji 字符,分别为: U+2B05 ~ U+2B07、 U+2B1B、 U+2B1C、 U+2B50 和 U+2B55 或拼上 U+FE0F,在 Java 中正则表达式为:

"[\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55]\\uFE0F?"

11. 杂项符号及箭头

杂项符号及箭头中有7个 emoji 字符,分别为: U+2B05 ~ U+2B07、 U+2B1B、 U+2B1C、 U+2B50 和 U+2B55 或拼上 U+FE0F,在 Java 中正则表达式为:
“[\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55]\uFE0F?”

12. 补充箭头符号

补充箭头符号中有2个 emoji 字符,分别为: U+2934 和 U+2935 或拼上 U+FE0F,在 Java 中正则表达式为:

"[\\u2934\\u2935]\\uFE0F?"

13. CJK 符号和标点

CJK (Chinese, Japanese and Korean) 符号和标点中有两个 emoji 字符,分别为: U+3030 和 U+303D 或拼上 U+FE0F,在 Java 中正则表达式为:

"[\\u3030\\u303D]\\uFE0F?"

14. 封闭式 CJK 字母和月份符号

封闭式 CJK 字母和月份符号中有两个 emoji 字符,分别为:U+3297 和 U+3299 或拼上 U+FE0F,在 Java 中正则表达式为:

"[\\u3297\\u3299]\\uFE0F?"

15. 封闭式表意文字补充符号

封闭式表意文字补充符号中有15个 emoji 字符, 分别为: U+1F201、 U+1F202、 U+1F21A、 U+1F22F、 U+1F232 ~ U+1F23A、 U+1F250、 U+1F251 或拼上 U+FE0F,在 Java 中正则表达式为:

"[\\uD83C\\uDE01\\uD83C\\uDE02\\uD83C\\uDE1A\\uD83C\\uDE2F\\uD83C\\uDE32-\\uD83C\\uDE3A\\uD83C\\uDE50\\uD83C\\uDE51]\\uFE0F?"

16. 一般标点

一般标点符号中有2个 emoji 字符,分别为: U+203C 和 U+2049 或拼上 U+FE0F,在 Java 中正则表达式为:

"[\\u203C\\u2049]\\uFE0F?"

17. 几何图形

几何图形中有8个 emoji 字符,分别为: U+25AA、 U+25AB、 U+25B6、 U+25C0 和 U+25FB ~ U+25FE 或拼上 U+FE0F,在 Java 中正则表达式为:

"[\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE]\\uFE0F?"

18. 拉丁文补充符号

拉丁文补充符号中有2个 emoji 字符,分别为: U+00A9 和 U+00AE 或拼上 U+FE0F,在 Java 中正则表达式为:

"[\\u00A9\\u00AE]\\uFE0F?"

19. 字母符号

字母符号中有2个 emoji 字符,分别为: U+2122 和 U+2139 或拼上 U+FE0F,在 Java 中正则表达式为:

"[\\u2122\\u2139]\\uFE0F?"

20. 麻将牌

麻将牌中只有一个 emoji 字符,为: U+1F004 或拼上 U+FE0F,在 Java 中正则表达式为:

"\\uD83C\\uDC04\\uFE0F?"

21. 扑克牌

扑克牌中只有一个 emoji 字符,为: U+1F0CF 或拼上 U+FE0F,在 Java 中正则表达式为:

"\\uD83C\\uDCCF\\uFE0F?"

22. 杂项技术符号

杂项技术符号中有18个 emoji 字符,分别为: U+231A、 U+231B、 U+2328、 U+23CF、 U+23E9 ~ U+23F3 和 U+23F8 ~ U+23FA 或拼上 U+FE0F,在 Java 中正则表达式为:

"[\\u231A\\u231B\\u2328\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA]\\uFE0F?"

二、包含所有 emoji 的正则表达式

"(?:[\uD83C\uDF00-\uD83D\uDDFF]|[\uD83E\uDD00-\uD83E\uDDFF]|[\uD83D\uDE00-\uD83D\uDE4F]|[\uD83D\uDE80-\uD83D\uDEFF]|[\u2600-\u26FF]\uFE0F?|[\u2700-\u27BF]\uFE0F?|\u24C2\uFE0F?|[\uD83C\uDDE6-\uD83C\uDDFF]{1,2}|[\uD83C\uDD70\uD83C\uDD71\uD83C\uDD7E\uD83C\uDD7F\uD83C\uDD8E\uD83C\uDD91-\uD83C\uDD9A]\uFE0F?|[\u0023\u002A\u0030-\u0039]\uFE0F?\u20E3|[\u2194-\u2199\u21A9-\u21AA]\uFE0F?|[\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55]\uFE0F?|[\u2934\u2935]\uFE0F?|[\u3030\u303D]\uFE0F?|[\u3297\u3299]\uFE0F?|[\uD83C\uDE01\uD83C\uDE02\uD83C\uDE1A\uD83C\uDE2F\uD83C\uDE32-\uD83C\uDE3A\uD83C\uDE50\uD83C\uDE51]\uFE0F?|[\u203C\u2049]\uFE0F?|[\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE]\uFE0F?|[\u00A9\u00AE]\uFE0F?|[\u2122\u2139]\uFE0F?|\uD83C\uDC04\uFE0F?|\uD83C\uDCCF\uFE0F?|[\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA]\uFE0F?)"复制代码可以从这里获取代码 https://github.com/zly394/EmojiRegex

查看原文:Android EditText过滤换行符,回车符和空白符,以及过滤表情

Java 中 Emoji 的正则表达式相关推荐

  1. java正则表达式匹配数字范围_在java中怎么利用正则表达式匹配数字

    在java中怎么利用正则表达式匹配数字 发布时间:2020-12-03 17:47:12 来源:亿速云 阅读:58 作者:Leah 在java中怎么利用正则表达式匹配数字?针对这个问题,这篇文章详细介 ...

  2. Java中快速掌握正则表达式

    Java中快速掌握正则表达式 概述 匹配符号 快捷符号 开始和结束 分组及其各种形式 常用的正则表达式 概述 某个语句规则的字符串 匹配符号 中括号[ ]:只有方括号里面 指定的字符 才参与匹配,也只 ...

  3. Java中常用的正则表达式判断,如IP地址、电话号码、邮箱等

    java中我们会常用一些判断如IP.电子邮箱.电话号码的是不是符合,那么我们怎么来判断呢,答案就是利用正则表达式来判断了,因为本人对正则表达式没有太深的研究,所有感兴趣的朋友可以自行百度.我这就给基本 ...

  4. java中a z正则表达式,Java正则字符类[a-zA-Z]匹配

    字符类[a-zA-Z]匹配从a到z或A到Z的任何字符. 示例 以下示例显示了字符类匹配的用法. package com.yiibai; import java.util.regex.Matcher; ...

  5. java中的pattern_Java Pattern的用法是什么?

    展开全部 java 中pattern为正则表达式的编译表示形式.指定为字符串的正则表达式必须首先被编译为此类的实例.然后,62616964757a686964616fe58685e5aeb931333 ...

  6. java a标签正则_正则表达式:java中婚配HTML中a标签中的中文字符

    正则表达式:java中匹配HTML中a标签中的中文字符 今天群里一位朋友问到了一个正则表达式的问题,有如下内容: 特432 453543 a1特123你好123吗? 特2 标签中的文字现在要匹配出内容 ...

  7. 正则表达式在js和java中的使用

    1)angularjs中如何使用正则表达式 <input type="text"  ng-model="dutyCode" ng-focus=" ...

  8. java中的正则表达式捕获组与引用的概念

    今天群里有个人问,怎样用增则表达式匹配三角形的三边,其实只是要匹配三个数字而已,如 301 402 503 开始认为很简单,我就写了一个   "(([1-9]\\d?)\\s){2}$2&q ...

  9. java js 正则表达式_如何在JavaScript与Java中使用正则表达式

    如何在JavaScript与Java中使用正则表达式 发布时间:2021-02-11 13:16:01 来源:亿速云 阅读:69 作者:Leah 如何在JavaScript与Java中使用正则表达式? ...

最新文章

  1. 第一篇:BPE算法(附加)
  2. swift 方法的局部和外部参数名
  3. HDU 2202 最大三角形
  4. js基础篇——localStorage使用要点
  5. 线性代数知识点总结_考研数学线性代数部分怎样复习
  6. 自学python从零开始学_新手学习python-从零开始学习
  7. 聪明的质监员 2011年NOIP全国联赛提高组(二分+前缀和)
  8. 一个带新闻,天气的时钟Widget(三)---Webservices篇
  9. 使用JsonConfig控制JSON lib序列化
  10. mysql 分段执行_了解一下项目中常用的19条MySQL优化
  11. 后台拿webshell的方法总结
  12. oracle 942错误(exp imp 出问题的解决方案)
  13. 函数指针以及在类成员函数中应用函数指针
  14. Java语法基础常见疑惑解答
  15. KITTI数据集评估方法小结
  16. 路径规划-人工势场法(Artifical Potential Field)
  17. 【汇编】intel core cpu中常用的寄存器
  18. 2020年 IOS 逆向 反编译 注入修改游戏或APP的调用参数新手系列教程——使用theos tweak 注入hook修改游戏执行代码上传动态头像
  19. VS2022 - 微软官方blog - 翻译
  20. python提取字符串括号里的内容

热门文章

  1. java获取时间戳和随机数
  2. 【Word宏】根据除法的横式写竖式
  3. 一份能帮你通过大厂之路的简历指南 | 算法岗
  4. EasyGUI 详细解读
  5. BERT 论文精读与理解
  6. Kettle — 常用组件使用
  7. sim卡人突然显示无服务器,手机突然间显示无SIM是怎么回事?可能是这些情况造成的!...
  8. HDU1716 全排列
  9. windows 怎样进入注册表删除MySql注册表内容
  10. 解决VMware workstation 14 Pro黑屏的问题