📌  相关文章
📜  正则表达式验证链接 (1)

📅  最后修改于: 2023-12-03 14:55:54.504000             🧑  作者: Mango

正则表达式验证链接

正则表达式是一种用于匹配字符串的工具,非常适合用于验证链接的格式。以下是一个基本的正则表达式示例,可以用于验证链接的格式:

import re

url_regex = re.compile(
    r'^https?://'  # 协议(http 或 https)
    r'(?:(?:[A-Z0-9_](?:(?:[A-Z0-9_]|\\.|-)*[A-Z0-9_])?\\.)+(?:[A-Z]{2,})(?::[0-9]+)?|'  # 域名(IP)
    r'localhost|'  # localhost
    r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})'  # IPv4地址
    r'(?::\d+)?'  # 端口号
    r'(?:/?|[/?]\S+)$', re.IGNORECASE)

# 验证链接
def is_valid_url(url):
    return url_regex.match(url) is not None

正则表达式解释如下:

  • ^https?:// 匹配 http 或 https 协议
  • (?:(?:[A-Z0-9_](?:(?:[A-Z0-9_]|\\.|-)*[A-Z0-9_])?\\.)+(?:[A-Z]{2,})(?::[0-9]+)?| 匹配域名
  • localhost| 匹配 localhost
  • \\d{1,3}\\.\d{1,3}\\.\d{1,3}\\.\d{1,3}) 匹配 IPv4 地址
  • (?::\d+)? 匹配可选的端口号
  • (?:/?|[/?]\S+)$ 匹配可选的路径

这个正则表达式非常灵活,可以匹配大多数链接。但是需要注意的是,它并不是完美的正则表达式,可能会遗漏一些合法链接,或者匹配到一些非法链接。

使用示例
# 验证合法链接
print(is_valid_url('http://www.example.com'))
# True

# 验证非法链接
print(is_valid_url('ftp://www.example.com'))
# False
总结

正则表达式是验证链接格式的一种简单有效的方法。以上示例使用 Python 的 re 模块进行验证。如果你需要在其他编程语言中验证链接,请查看相应语言的正则表达式文档。