跳到主要内容
版本: 最新版本-3.5

regexp_extract

该函数返回目标值中与正则表达式模式匹配的第一个子字符串。它提取与模式匹配的pos中的项。模式必须完全匹配str的某些部分,以便该函数可以返回需要在模式中匹配的部分。如果未找到匹配项,则将返回一个空字符串。

语法

VARCHAR regexp_extract(VARCHAR str, VARCHAR pattern, int pos)

示例

提示

本示例使用 StarRocks 基础快速入门中的 Local Climatological Data(LCD) 数据集。您可以加载数据并自行尝试该示例。

给定以下数据

SELECT HourlySkyConditions FROM quickstart.weatherdata
WHERE HourlySkyConditions LIKE '%OVC%'
LIMIT 10;
+---------------------+
| HourlySkyConditions |
+---------------------+
| OVC:08 110 |
| OVC:08 120 |
| OVC:08 120 |
| OVC:08 30 |
| OVC:08 29 |
| OVC:08 27 |
| OVC:08 26 |
| OVC:08 22 |
| OVC:08 23 |
| OVC:08 22 |
+---------------------+
10 rows in set (0.03 sec)

返回字符串 OVC: 后的两组数字

SELECT regexp_extract(HourlySkyConditions, 'OVC:(\\d+ \\d+)', 1) FROM quickstart.weatherdata
WHERE HourlySkyConditions LIKE '%OVC%'
LIMIT 10;
+-----------------------------------------------------------+
| regexp_extract(HourlySkyConditions, 'OVC:(\\d+ \\d+)', 1) |
+-----------------------------------------------------------+
| 08 110 |
| 08 120 |
| 08 120 |
| 08 30 |
| 08 29 |
| 08 27 |
| 08 26 |
| 08 22 |
| 08 23 |
| 08 22 |
+-----------------------------------------------------------+
10 rows in set (0.01 sec)

仅返回字符串 OVC: 后的第二组数字

SELECT regexp_extract(HourlySkyConditions, 'OVC:(\\d+) (\\d+)', 2) FROM quickstart.weatherdata WHERE HourlySkyConditions LIKE '%OVC%' LIMIT 10;
+-------------------------------------------------------------+
| regexp_extract(HourlySkyConditions, 'OVC:(\\d+) (\\d+)', 2) |
+-------------------------------------------------------------+
| 110 |
| 120 |
| 120 |
| 30 |
| 29 |
| 27 |
| 26 |
| 22 |
| 23 |
| 22 |
+-------------------------------------------------------------+
10 rows in set (0.01 sec)
提示

可以通过不将第一组数字包装在匹配组 () 中并返回第一组来返回相同的结果

regexp_extract(HourlySkyConditions, 'OVC:\\d+ (\\d+)', 1)

关键词

REGEXP_EXTRACT,REGEXP,EXTRACT