如何使用正则表达式匹配包含表情符号的 URL?

How to match a URL containing emojis using a regex?

如何编写正则表达式来匹配包含表情符号的 URL?正则表达式应匹配普通字母数字 URLs 以及 URLs 在域名中包含表情符号,路径 and/or 参数如:

http://.to

http://www..到/

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

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

http://\S+

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

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

要检查的正则表达式 URL 包含字母表

String alphabets= "(.*[a-zA-Z].*)";

要检查的正则表达式 URL 包含数字

String numbers= "(.*[0-9].*)";

要检查的正则表达式 URL 包含特殊字符

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

要检查的正则表达式 URL 包含字母数字和表情符号

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

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

此正则表达式匹配普通字母数字 URL 以及域名中包含表情符号的 URL,路径 and/or 参数:

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

请注意,将来添加新表情符号时,可能需要更新包含表情符号(即 \uXXXX-\uXXXX)的 Unicode 字符范围。