Regex表达式以匹配URL

Regex Expression to match URLs

本文关键字:URL 表达式 Regex      更新时间:2023-09-26

我有以下正则表达式来检测URLS:

/('b(https?|ftp|file):'/'/[-A-Z0-9+&@#'/%?=~_|!:,.;]*[-A-Z0-9+&@#'/%=~_|])/ig

但是,它不检测诸如www.google.catlk.tc/ApSE之类的URL。有没有一个正则表达式可以检测这些URL?我正在使用javascript。

编辑:

试试这个:

(('b(https?|ftp|file):'/'/)?[-A-Z0-9+&@#'/%?=~_|!:,.;]+'.[-A-Z0-9+&@#'/%=~_|]+)

它使方案成为可选方案,以支持您在示例中显示的两种情况。

用于URL的IETF RFC-2396为解析URL提供了以下正则表达式

^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)('?([^#]*))?(#(.*))?

它将捕获组映射到以下组件:

scheme    = $2
authority = $4
path      = $5
query     = $7
fragment  = $9

请注意,您给出的示例www.google.catlk.tc/ApSE不是"有效"URL,但我相信它们无论如何都会被正则表达式匹配。

这个表达式可以执行您想要的操作。这不是这个正则表达式匹配的有效URL,但它符合您的要求:

/('b(https?|ftp|file):'/'/|'bwww'.[-A-Z0-9+&@#'/%?=~_|!:,.;]*[-A-Z0-9+&@#'/%=~_|])|(['S]+'.([a-z]{2,})+?'/['S]+)/gi