不确定网址(http://tools.ietf.org/html/rfc3986)是否是正则表达式,但是URL的最强大和正式的正则表达式是什么?
有许多正则表达方言(perl,emacs lisp,php,python等),但任何方言都可以接受。
答案 0 :(得分:0)
^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))? 12 3 4 5 6 7 8 9
上面第二行中的数字只是为了提高可读性; 它们表示每个子表达的参考点(即每个子表达式) 配对括号)。我们引用子表达式匹配的值
匹配<n>
为$<n>
。例如,将上述表达式与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
其中表示组件不存在,按原样 上例中查询组件的情况。因此,我们 可以确定五个组件的值
scheme = $2 authority = $4 path = $5 query = $7 fragment = $9