URL 编码解码

解码 URL 示例中使用的正则表达式取自 RFC 2396,附录 B:使用正则表达式解析 URI 引用 ; 对于后代,这是一个引用:

以下行是用于将 URI 引用分解为其组件的正则表达式。

^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?
 12            3  4          5       6  7        8 9

上面第二行中的数字只是为了提高可读性; 它们表示每个子表达的参考点(即每个配对括号)。我们将子表达式匹配的值称为$。例如,将上面的表达式与之匹配

http://www.ics.uci.edu/pub/ietf/uri/#Related

导致以下子表达式匹配:

$1 = http:
$2 = http
$3 = //www.ics.uci.edu
$4 = www.ics.uci.edu
$5 = /pub/ietf/uri/
$6 = <undefined>
$7 = <undefined>
$8 = #Related
$9 = Related