gpt4 book ai didi

javascript - 正则匹配表情

转载 作者:数据小太阳 更新时间:2023-10-29 04:38:34 25 4
gpt4 key购买 nike

我们正在开展一个项目,希望用户能够使用表情符号语法(如 :smile::heart::confused::stuck_out_tongue:)以及普通表情符号(如 :)<3 , :/ , :p )

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

  • 普通字符串或 URL - http ://example.com
  • 在表情符号语法中 - :p编码:

如何找到这些表情符号字符序列,但当其他字符靠近它们时却找不到?

我用于所有表情符号的整个正则表达式都很大,所以这里有一个精简版:

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

您可以在此处试用它的实际演示:http://regexr.com/3a8o5

最佳答案

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

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

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

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

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

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

关于javascript - 正则匹配表情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28077049/

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