热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

正则表达式匹配表情符号

如何解决《正则表达式匹配表情符号》经验,为你挑选了1个好方法。

我们正在努力,我们希望用户能够同时使用的表情符号的语法项目(如:smile:,:heart:,:confused:,:stuck_out_tongue:),以及正常的表情符号(如:),<3,:/,:p)

我在使用表情符号语法时遇到问题,因为有时这些字符序列会出现在:

普通字符串或网址 - http ://example.com

在表情符号语法中 - :pencil:

我怎样才能找到这些表情字符序列,而不是当其他字符靠近它们时?

我用于所有表情符号的整个正则表达式是巨大的,所以这里是一个trimed down版本:

(\:\)|\:\(|<3|\:\/|\:-\/|\:\||\:p)

您可以在这里播放它的演示:http://regexr.com/3a8o5



1> Jesse Sweetl..:

首先匹配表情符号(以处理:pencil:示例),然后检查终止空格或换行符:

(\:\w+\:|\<[\/\\]?3|[\(\)\\\D|\*\$][\-\^]?[\:\;\=]|[\:\;\=B8][\-\^]?[3DOPp\@\$\*\\\)\(\/\|])(?=\s|[\!\.\?]|$)

此正则表达式匹配以下(首选表情符号)返回匹配组1中的匹配:

:( :) :P :p :O :3 :| :/ :\ :$ :* :@
:-( :-) :-P :-p :-O :-3 :-| :-/ :-\ :-$ :-* :-@
:^( :^) :^P :^p :^O :^3 :^| :^/ :^\ :^$ :^* :^@
): (: $: *:
)-: (-: $-: *-:
)^: (^: $^: *^:
<3 

除了空格之外,它还支持终端标点符号作为分隔符.

您可以在此处查看更多详细信息并进行测试:https://regex101.com/r/aM3cU7/4


当匹配`(`或`)`你还应该检查它不是有效的括号集的一部分,例如你不希望它在这里匹配&#39;8)`表情符号:`blah blah bug(转载)在iOS 8)`.简而言之,这真的不是你能用正则表达式处理好的东西.
推荐阅读
  • socket.io是个基于node.js的快平台实时通讯框架。只用不到10行代码,就可以搭建一个简单的多人实时聊天室。先来看看运行后的效果:socket.io多人聊天室只要简单几 ... [详细]
  • 1、创建高级对象使用构造函数来创建对象构造函数是一个函数,调用它来例示并初始化特殊类型的对象。可以使用new关键字来调用一个构造函数。下面给出了使用构造函数的新示例。 ... [详细]
  • 表单提交前的最后验证:通常在表单提交前,我们必须确认用户是否都把必须填选的做了,如果没有,就不能被提交到服务器,这里我们用到表单的formname.submit()看演示,其实这个对于我们修炼道 ... [详细]
  • 用JavaScript实现的太空人手表
    用JavaScript实现的太空人手表-JS写的太空人手表,没有用canvas、svg。主要用几个大的函数来动态显示时间、天气这些。天气的获取用到了AJAX请求。代码中有详细的注释 ... [详细]
  • Material Design Lite ,简洁惊艳的前端工具箱。
    2019独角兽企业重金招聘Python工程师标准MaterialDesignLite简介本文主要介绍MaterialDesign设计语言的HTMLCSSJS部分实现。对应每一 ... [详细]
  • 为什么我的Font Awesome图标显示为空白方块?
    SoyouvedecidetouseFontAwesomeforsomegreatscalableicons.Youdownloadthem,maybeyouusetheBoots ... [详细]
  • EIGRP增强内部网关路由协议协议号88IGRPEIGRP都是CISCO的私有协议.---高级距离矢量协议1、是唯一的一种LSDV的混合协议2、EIGRP拥有目前最快的网络路由收敛 ... [详细]
  • delphi控件大全
    本文章已收录于:delphi控件查询:http:www.torry.nethttp:www.jrsoftware.orgTb97最有名的工具条(ToolBar) ... [详细]
  • JS动态生成表格案例 ... [详细]
  • 先下载linuxhttp:cdimage.ubuntu.comreleases14.04release我下载的是ubuntu-14.04.3-desktop-amd64mac.is ... [详细]
  • 来源|http:sudasuta.comfree-material-design-resources.html如果你正在寻找高品质,免费的设计资源,那么 ... [详细]
  • python-去除字符串中特定字符一、去掉字符串两端字符:strip(,rstrip(,lstrip(s.strip(#删除两边(头尾空字符,默认是空字符s. ... [详细]
  • 本文整理了常用的CSS属性及用法,包括背景属性、边框属性、尺寸属性、可伸缩框属性、字体属性和文本属性等,方便开发者查阅和使用。 ... [详细]
  • 和数|这一点_5 个让日常编码更简单的 Python 库
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了5个让日常编码更简单的Python库相关的知识,希望对你有一定的参考价值。今天我们一起来研究一些非常有用的第三方模 ... [详细]
  • 逐日 30 秒 ⏱ 字符编码排雷录
    简介字符编码、字符长度毛病、截取字符毛病、UTF8、Unicode计算机重重底层之下都是由0和1组合,然则你晓得他们是怎样一步步变成字符串的嘛?在我们实际生活中最罕见的例子能够经由 ... [详细]
author-avatar
舅舅家123_204
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有