📜  链接正则表达式 (1)

📅  最后修改于: 2023-12-03 15:42:07.734000             🧑  作者: Mango

链接正则表达式

在编写网页爬虫或者文本处理程序时,经常需要从文本中提取链接。链接正则表达式就是一种用于匹配链接的正则表达式。

完整链接匹配

一般来说,完整的链接应该包含协议、域名和路径。如 http://example.com/path/to/file.html。下面是一个匹配完整链接的正则表达式:

/^(http(s)?\:\/\/)?[A-Za-z0-9.-]+(\.[A-Za-z]{2,})(\/\S*)?$/

它由以下几部分组成:

  • /^...$/:正则表达式的开始和结束符号。
  • (http(s)?\:\/\/)?:可选的 http 或 https 协议。
  • [A-Za-z0-9.-]+:任意个由大小写字母、数字、点号和中划线组成的字符,用于匹配域名的前半部分。
  • (\.[A-Za-z]{2,}):点号加两个或以上的字母,用于匹配域名的后缀部分。
  • \/\S*:路径部分,以斜杠开头,后面跟着任意个非空白字符。

该正则表达式可匹配以下字符串:

  • http://example.com
  • https://example.com/path/to/file.html
  • http://subdomain.example.com/index.html
相对链接匹配

相对链接指的是不包括协议和域名的链接,如 /path/to/file.html。下面是一个匹配相对链接的正则表达式:

/^\/[A-Za-z0-9]+\S*$/

它由以下几部分组成:

  • /^...$/:正则表达式的开始和结束符号。
  • \/:斜杆符号,用于匹配路径的起始部分。
  • [A-Za-z0-9]+:任意个由大小写字母和数字组成的字符,用于匹配路径的第一个词。
  • \S*:匹配路径中除第一个词以外的任意个非空白字符。

该正则表达式可匹配以下字符串:

  • /path/to/file.html
  • /index.html
  • /path/to/directory/
扩展阅读