用于支持默认链接和带数字符号 (#) 的链接的正则表达式 [重复]

Posted

技术标签:

【中文标题】用于支持默认链接和带数字符号 (#) 的链接的正则表达式 [重复]【英文标题】:regex for supporting both default link and links with number sign (#) [duplicate] 【发布时间】:2019-08-07 06:23:35 【问题描述】:

我需要一个正则表达式来验证客户端的两种默认链接格式。 例如http://example.com#myInternalLink 是有效的。 我写了这个,但没有工作。

^(((http|https)://(([A-Z0-9][A-Z0-9_-])(.[A-Z0-9][A-Z0-9_ -])+)(?::\d1,5)?(?:$|[?/#])) | (#([A-Z0-9][A-Z0- 9_-]*)))

已经回答的问题只是解决了默认链接格式。我想在同一个正则表达式中验证 http://example.com#myInternalLink

【问题讨论】:

我认为http:://example.com#myInternalLink 都不是有效的网址... @appleapple 为什么?什么是有效的网址? 我编辑了我的问题并使用了链接而不是 URL。 http::// 不是有效的协议。 http:// 是。 #myInternalLink 是一个片段 - 不是 URL。可以将片段与街道号码进行比较 - 这不是完整的地址。 @mahsaa,我认为有效的网址有一个: 【参考方案1】:

查看https://www.rfc-editor.org/rfc/rfc3986 了解什么是有效的 URL。关于你的正则表达式,看看What is a good regular expression to match a URL?

【讨论】:

为什么投反对票?

以上是关于用于支持默认链接和带数字符号 (#) 的链接的正则表达式 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Java正则校验密码至少包含:字母数字特殊符号中的2种

用于匹配空格或标点符号和非字母数字的正则表达式

grep过滤数字的正则表达式,拿来即用!

将标题设置为链接和带颜色文字

Puppet正则表达式(十七)

正则表达式总结