不确定 URL ( https://www.rfc-editor.org/rfc/rfc3986 ) 是否是正则表达式,但是 URL 最健壮和正式的正则表达式是什么?
有许多正则表达式方言(perl、emacs lisp、php、python 等),但任何方言都可以接受。
不确定 URL ( https://www.rfc-editor.org/rfc/rfc3986 ) 是否是正则表达式,但是 URL 最健壮和正式的正则表达式是什么?
有许多正则表达式方言(perl、emacs lisp、php、python 等),但任何方言都可以接受。
^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))? 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
where 表示该组件不存在,如上例中查询组件的情况。因此,我们可以将五个分量的值确定为
scheme = $2 authority = $4 path = $5 query = $7 fragment = $9