首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用regex匹配包含emojis的URL?

问如何使用regex匹配包含emojis的URL?
EN

Stack Overflow用户
提问于 2017-10-03 09:55:02
回答 3查看 1.1K关注 0票数 0

如何编写正则表达式来匹配包含emojis的URL?regex应该匹配普通字母数字URL以及包含域名、路径和/或参数(如:

http://.to

http://www.至/

http://.to/I❤️coding?ref=

当今大多数网络应用程序(包括但不限于社交网络、在线社区等)自动检测用户以文本形式发布的URL,并将其转换为超链接。尽管如此,它们中几乎没有一个(包括StackOverflow)能够正确匹配包含表情符号的URL,比如上面报告的例子,它们都是有效的,100%起作用,并且越来越受欢迎。由于所有这些原因,当前的问题与使用任何编程语言实现更现代的URL匹配正则表达式的代码实现非常相关。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-10-03 15:03:06

这个正则表达式匹配普通字母数字URL和包含域名、路径和/或参数中的表情符号的URL:

代码语言:javascript
复制
https?:\/\/(www\.)?[-a-zA-Z0-9\u1F60-\uFFFF@:%._\+~#=]{2,256}\.[a-z]{2,256}\b([-a-zA-Z0-9\u1F60-\uFFFF@:%_\+.~#?&//=]*)

在这里尝试一下:https://regexr.com/3gsl9

注意,包含emojis (即\uXXXX-\uXXXX)的unicode字符的范围将来可能需要在添加新的emojis时进行更新。

票数 3
EN

Stack Overflow用户

发布于 2017-10-03 09:59:24

http://\S+

其中\S+捕获所有非空白

诀窍是防止regex变得过于贪婪,您可能需要一些额外的信息来帮助确定url的末尾,是空格还是以某种方式封装?

票数 0
EN

Stack Overflow用户

发布于 2017-10-03 10:01:25

检查URL包含字母的Regex

代码语言:javascript
复制
String alphabets= "(.*[a-zA-Z].*)";

检查URL包含数字的Regex

代码语言:javascript
复制
String numbers= "(.*[0-9].*)";

检查URL包含特殊字符的Regex

代码语言:javascript
复制
 String special = "(.*[!,@,$,%,^,&,*,#,~,`,{,},%,|,(,),-,_,=,+,[,],;,:,',\",,,<,.,>,/,?].*$)";

检查URL的Regex包含字母、数字和表情符号

代码语言:javascript
复制
 String emo="^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&()-*/!+=])(?=\\S+$).{size,}$";

根据您的需要调整大小并更改特殊字符。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46541831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档