1

不确定 URL ( https://www.rfc-editor.org/rfc/rfc3986 ) 是否是正则表达式,但是 URL 最健壮和正式的正则表达式是什么?

有许多正则表达式方言(perl、emacs lisp、php、python 等),但任何方言都可以接受。

4

1 回答 1

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

where 表示该组件不存在,如上例中查询组件的情况。因此,我们可以将五个分量的值确定为

  scheme    = $2
  authority = $4
  path      = $5
  query     = $7
  fragment  = $9

通过https://www.rfc-editor.org/rfc/rfc3986#appendix-B

于 2013-10-01T14:59:49.520 回答