---
schema_version: "1"
id: b0d38920c2c9508eb9a4355913f4cd9d75e7f9edbf370e9e85e288be310463af
title: 其他函数（正则表达式、Hadoop Hive、Google Big Query）
collection: tableau
version: current
locale: zh-cn
portal_url: https://docs.salesforce.com/tableau/current/zh-cn/pro/desktop/functions_functions_additional.md
canonical_url: https://help.tableau.com/current/pro/desktop/zh-cn/functions_functions_additional.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 9d67499a660afd6d0e02695cca5584bdc8e0ededdc23262fd59125a397cb175c
description: Reference for additional functions including regular expressions, Hadoop Hive, and BigQuery.
---
[跳转到主要内容](#main-content)

# 其他函数（正则表达式、Hadoop Hive、Google Big Query）另请参见：

[直通函数 (RAWSQL)](https://help.tableau.com/current/pro/desktop/zh-cn/functions_functions_passthrough.htm)。

## 正则表达式 

有关正则表达式语法的信息，请参见数据源的文档。对于 Tableau 数据提取，正则表达式语法遵守 ICU（Unicode 国际化组件）的标准，ICU 是用于 Unicode 支持、软件国际化和软件全球化的成熟 C/C++ 和 Java 库开源项目。请参见在线 ICU 用户指南中的[正则表达式](http://userguide.icu-project.org/strings/regexp)页面。

### REGEXP\_REPLACE

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>REGEXP_REPLACE(string, pattern, replacement)</code></td></tr><tr><td>输出</td><td>字符串</td></tr><tr><td>定义</td><td>返回给定字符串的副本，其中正则表达式模式被替换字符串取代。</td></tr><tr><td>示例</td><td><pre>REGEXP_REPLACE('abc 123', '\s', '-') = 'abc-123'</pre></td></tr><tr><td>说明</td><td><p>此函数可用于文本文件、Hadoop Hive、Google BigQuery、PostgreSQL、Tableau 数据提取、Microsoft Excel、Salesforce、Vertica、Pivotal Greenplum、Teradata（版本 14.1 及更高版本）、Snowflake 和 Oracle 数据源。</p><p>对于 Tableau 数据提取，模式和替换字符串必须为常量。</p></td></tr></tbody></table>

### REGEXP\_MATCH

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>REGEXP_MATCH(string, pattern)</code></td></tr><tr><td>输出</td><td>布尔值</td></tr><tr><td>定义</td><td>如果指定的字符串的子字符串匹配正则表达式模式，则返回 true。</td></tr><tr><td>示例</td><td><pre>REGEXP_MATCH('-([1234].[The.Market])-','\[\s*(\w*\.)(\w*\s*\])')=true</pre></td></tr><tr><td>说明</td><td><p>此函数可用于文本文件、Google BigQuery、PostgreSQL、Tableau 数据提取、Microsoft Excel、Salesforce、Vertica、Pivotal Greenplum、Teradata（版本 14.1 及更高版本）、Impala 2.3.0（通过 Cloudera Hadoop 数据源）、Snowflake 和 Oracle 数据源。</p><p>对于 Tableau 数据提取，模式必须为常量。</p></td></tr></tbody></table>

### REGEXP\_EXTRACT

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>REGEXP_EXTRACT(string, pattern)</code></td></tr><tr><td>输出</td><td>字符串</td></tr><tr><td>定义</td><td>返回与正则表达式模式匹配的字符串部分。</td></tr><tr><td>示例</td><td><pre>REGEXP_EXTRACT('abc 123', '[a-z]+\s+(\d+)') = '123'</pre></td></tr><tr><td>说明</td><td><p>此函数可用于文本文件、Hadoop Hive、Google BigQuery、PostgreSQL、Tableau 数据提取、Microsoft Excel、Salesforce、Vertica、Pivotal Greenplum、Teradata（版本 14.1 及更高版本）、Snowflake 和 Oracle 数据源。</p><p>对于 Tableau 数据提取，模式必须为常量。</p></td></tr></tbody></table>

### REGEXP\_EXTRACT\_NTH

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>REGEXP_EXTRACT_NTH(string, pattern, index)</code></td></tr><tr><td>输出</td><td>字符串</td></tr><tr><td>定义</td><td>返回与正则表达式模式匹配的字符串部分。子字符串匹配到第 n 个捕获组，其中 n 是给定的索引。如果索引为 0，则返回整个字符串。</td></tr><tr><td>示例</td><td><pre>REGEXP_EXTRACT_NTH('abc 123', '([a-z]+)\s+(\d+)', 2) = '123'</pre></td></tr><tr><td>说明</td><td><p>此函数可用于文本文件、PostgreSQL、Tableau 数据提取、Microsoft Excel、Salesforce、Vertica、Pivotal Greenplum、Teradata（版本 14.1 及更高版本）和 Oracle 数据源。</p><p>对于 Tableau 数据提取，模式必须为常量。</p></td></tr></tbody></table>

## Hadoop Hive 的特定函数

**注意：**只有 PARSE\_URL 和 PARSE\_URL\_QUERY 函数可用于 Cloudera Impala 数据源。

### GET\_JSON\_OBJECT(JSON 字符串, JSON 路径)

根据 JSON 路径返回 JSON 字符串中的 JSON 对象。

### PARSE\_URL(字符串, url\_part)

返回给定 URL 字符串的组成部分（由 url\_part 定义）。有效的 url\_part 值包括：'HOST'、'PATH'、'QUERY'、'REF'、'PROTOCOL'、'AUTHORITY'、'FILE' 和 'USERINFO'。

示例

`PARSE_URL('http://www.tableau.com', 'HOST') = 'www.tableau.com'`

### PARSE\_URL\_QUERY(字符串, 密钥)

返回给定 URL 字符串中的指定查询参数的值。查询参数由密钥定义。

示例

`PARSE_URL_QUERY('http://www.tableau.com?page=1&cat=4', 'page') = '1'`

### XPATH\_BOOLEAN(XML 字符串, XPath 表达式字符串)

如果 XPath 表达式匹配节点或计算为 true，则返回 true。

示例

`XPATH_BOOLEAN('<values> <value id="0">1</value><value id="1">5</value>', 'values/value[@id="1"] = 5') = true`

### XPATH\_DOUBLE(XML 字符串, XPath 表达式字符串)

返回 XPath 表达式的浮点值。

示例

`XPATH_DOUBLE('<values><value>1.0</value><value>5.5</value> </values>', 'sum(value/*)') = 6.5`

### XPATH\_FLOAT(XML 字符串, XPath 表达式字符串)

返回 XPath 表达式的浮点值。

示例

`XPATH_FLOAT('<values><value>1.0</value><value>5.5</value> </values>','sum(value/*)') = 6.5`

### XPATH\_INT(XML 字符串, XPath 表达式字符串)

返回 Xpath 表达式的数值；或者，如果 Xpath 表达式无法计算为数字，则返回零。

示例

`XPATH_INT('<values><value>1</value><value>5</value> </values>','sum(value/*)') = 6`

### XPATH\_LONG(XML 字符串, XPath 表达式字符串)

返回 Xpath 表达式的数值；或者，如果 Xpath 表达式无法计算为数字，则返回零。

示例

`XPATH_LONG('<values><value>1</value><value>5</value> </values>','sum(value/*)') = 6`

### XPATH\_SHORT(XML 字符串, XPath 表达式字符串)

返回 Xpath 表达式的数值；或者，如果 Xpath 表达式无法计算为数字，则返回零。

示例

`XPATH_SHORT('<values><value>1</value><value>5</value> </values>','sum(value/*)') = 6`

### XPATH\_STRING(XML 字符串, XPath 表达式字符串)

返回第一个匹配节点的文本。

示例

`XPATH_STRING('<sites ><url domain="org">http://www.w3.org</url> <url domain="com">http://www.tableau.com</url></sites>', 'sites/url[@domain="com"]') = 'http://www.tableau.com'`

## Google BigQuery 的特定函数

### DOMAIN(string\_url)

在给定 URL 字符串的情况下返回作为字符串的域。

示例

`DOMAIN('http://www.google.com:80/index.html') = 'google.com'`

### GROUP\_CONCAT(表达式)

将来自每个记录的值连接为一个由逗号分隔的字符串。此函数在处理字符串时的作用类似于 SUM()。

示例

`GROUP_CONCAT(Region) = "Central,East,West"`

### HOST(string\_url)

在给定 URL 字符串的情况下返回作为字符串的主机名。

示例

`HOST('http://www.google.com:80/index.html') = 'www.google.com:80'`

### LOG2(数字)

返回数字的对数底 2。

示例

`LOG2(16) = '4.00'`

### LTRIM\_THIS(字符串, 字符串)

返回第一个字符串（移除了在前导位置出现的任何第二个字符串）。

示例

`LTRIM_THIS('[-Sales-]','[-') = 'Sales-]'`

### RTRIM\_THIS(字符串, 字符串)

返回第一个字符串（移除了在尾随位置出现的任何第二个字符串）。

示例

`RTRIM_THIS('[-Market-]','-]') = '[-Market'`

### TIMESTAMP\_TO\_USEC(表达式)

将 TIMESTAMP 数据类型转换为 UNIX 时间戳（以微秒为单位）。

示例

`TIMESTAMP_TO_USEC(#2012-10-01 01:02:03#)=1349053323000000`

### USEC\_TO\_TIMESTAMP(表达式)

将 UNIX 时间戳（以微秒为单位）转换为 TIMESTAMP 数据类型。

示例

`USEC_TO_TIMESTAMP(1349053323000000) = #2012-10-01 01:02:03#`

### TLD(string\_url)

在给定 URL 字符串的情况下返回顶层域以及 URL 中的任何国家/地区域。

示例

`TLD('http://www.google.com:80/index.html') = '.com'`

`TLD('http://www.google.co.uk:80/index.html') = '.co.uk'`