有人会解释这个JavaScript REGEX模式吗?

Will someone explain this javascript REGEX pattern?

本文关键字:REGEX 模式 JavaScript 解释      更新时间:2023-09-26
src.match(/^(https?':'/'/.*)'//)

我知道正则表达式,但我不熟悉语法。有人可以向我解释它匹配的内容吗?

匹配以 http:// https:// 开头的任何内容,后跟任意数量的任意字符 (.*(,后跟另一个/斜杠。

/斜杠需要转义。我不知道为什么结肠也被逃逸了。

  • ^字符串的开头
  • 捕获组的(开始
    • http字符"http">
    • s?零个或字符"s"中的一个
    • ':冒号字符(转义,但不是必需的(
    • '/'/两个正斜杠字符(转义,以便它不会关闭正则表达式文本(
    • .*除换行符之外的任何字符都已归零
  • 捕获组的)
  • '/正斜杠字符(转义,以便它不会关闭正则表达式文本(

/字符的开头和结尾仅表示正则表达式文字表示法。

以"http"/"https"开头的字符串,后跟 ://,后跟任意数量的字符(贪婪地(,然后是尾随的/。

匹配项本身将完全是搜索的内容,减去最后一个/。

这是一个

非常普通的正则表达式:

^ 在字符串的开头

( 开始捕获

http 从字面上匹配"http">

s? 匹配可选的"s">

': 匹配文字冒号

'/ 匹配文字斜杠

'/ 匹配文字斜杠

.* 然后尽可能多的字符

) 结束捕获

'/ 以文字斜杠结尾

正则表达式具有从 URL 捕获协议、主机和路径的效果,并排除末尾的任何文件。例如在https://www.host.com/path/to/my/file.cgi的情况下,https://www.host.com/path/to/my将被捕获。

这些是正则表达式匹配的一些示例:

https://www.aaa.bb/
http://www.aaa.bb/
http://some.server/
http://aa/
http:///
https:///
http:////////////
https:////////////