preg_match(#(?:([a-zA-Z-]+):)?(?://(?:([a-zA-Z0-9_!$&\'()*+,;=._~%-]+)(?::([a-zA-Z0-9_!$&\'()*+,;=._~%-]*))?@)?([a-zA-Z0-9-._]+)(?::([0-9]*))?)?([a-zA-Z0-9_!$&\'()*@+,:;=._~/%-]*)(?:\\?([0-9a-zA-Z!$&\'()*@+,:;=._~%-]*))?(?:\\#(.*))?#, $uri, $m));
上面的正则表达式用于匹配 url,结果应该是 m[1] = scheme m[2] = user m[3] = pass m[4] = host m[5] = port m[6] =路径 m[7] = 查询字符串 m[8] = 片段
它运行良好,除非 queryString 包含数组,例如: ?ar[k1]=v1&ar[k2]=v2
我的问题是: 1. 正则表达式中锐利 # 的含义是什么 2.如何修改正则表达式以使其匹配 queryString 包含数组