全部產品
Search
文件中心

MaxCompute:NET_REG_DOMAIN

更新時間:Aug 19, 2025

NET_REG_DOMAIN函數用於從STRING類型的URL字串中解析出登入或可註冊的網域名稱(即公用尾碼加上前一級標籤)。

注意事項

  • publicsuffix.org上的公用尾碼資料也包含私人域。此函數不將私人域視為公用尾碼。

    例如,如果private.com是公用尾碼資料中的私人域,則NET_REG_DOMAIN(“test.private.com”)返回private.com(公用尾碼com加上前置的標籤private),而不是test.private.com(私人域private.com加上前置的標籤test)。

命令格式

STRING NET_REG_DOMAIN(STRING <url>)

參數說明

url:必填。STRING類型。待解析的URL字串。

說明

為了獲得最佳解析結果,URL字串應符合RFC 3986定義的格式。

傳回值說明

返回STRING類型。 如果下列任一條件成立,則該函數返回NULL:

  • 無法從輸入中解析主機名稱(hostname)部分;

  • 解析的主機名稱(hostname)部分在中間包含相鄰的點(不是前置或尾隨);

  • 解析後的主機名稱(hostname)部分不包含任何公用尾碼;

  • 解析後的主機名稱(hostname)部分只包含一個公用尾碼,沒有任何前置標籤。

說明

公用尾碼資料可能會隨時間而變化。因此,現在產生NULL結果的輸入將來可能會產生非NULL值。

相關解析函數

若需要解析URL中除網域名稱的其他部分,可以使用如下函數:

  • NET_HOST:解析給定的URL中主機名稱(hostname)部分。

  • NET_PUBLIC_SUFFIX: 解析給定的URL中公用尾碼(如com、org或net)。

使用樣本

SELECT input
,description
,NET_HOST(input) AS HOST
,NET_PUBLIC_SUFFIX(input) AS SUFFIX
,NET_REG_DOMAIN(input) AS DOMAIN  
FROM (
  SELECT "" AS input, "invalid input" AS description
  UNION ALL SELECT "http://abc.xyz", "standard URL"
  UNION ALL SELECT "//user:password@a.b:80/path?query",
                   "standard URL with relative scheme, port, path and query, but no public suffix"
  UNION ALL SELECT "https://[::1]:80", "standard URL with IPv6 host"
  UNION ALL SELECT "http://例子.捲筒紙.中國", "standard URL with internationalized domain name"
  UNION ALL SELECT "    www.Example.Co.UK    ",
                   "non-standard URL with spaces, upper case letters, and without scheme"
  UNION ALL SELECT "mailto:?to=&subject=&body=", "URI rather than URL--unsupported"
);
                         
+-----------------------------------+-------------------------------------------------------------------------------+-------------------+------------+---------------+
| input                             | description                                                                   | host              | suffix     | domain        | 
+-----------------------------------+-------------------------------------------------------------------------------+-------------------+------------+---------------+
|                                   | invalid input                                                                 | NULL              | NULL       | NULL          | 
| http://abc.xyz                    | standard URL                                                                  | abc.xyz           | xyz        | abc.xyz       | 
| //user:password@a.b:80/path?query | standard URL with relative scheme, port, path and query, but no public suffix | a.b               | NULL       | NULL          | 
| https://[::1]:80                  | standard URL with IPv6 host                                                   | [::1]             | NULL       | NULL          | 
| http://例子.捲筒紙.中國             | standard URL with internationalized domain name                               | 例子.捲筒紙.中國     | 中國       | 捲筒紙.中國     | 
|         www.Example.Co.UK         | non-standard URL with spaces, upper case letters, and without scheme          | www.Example.Co.UK | Co.UK      | Example.Co.UK | 
| mailto:?to=&subject=&body=        | URI rather than URL--unsupported                                              | mailto            | NULL       | NULL          | 
+-----------------------------------+-------------------------------------------------------------------------------+-------------------+------------+---------------+

相關函數

NET_REG_DOMAIN函數屬於網路函數,更多網路相關函數請參見網路函數