メインコンテンツまでスキップ
バージョン: 3.2

regexp_extract

説明

この関数は、ターゲット値の中で正規表現パターンに一致する最初の部分文字列を返します。パターンに一致する pos の項目を抽出します。パターンは str の一部に完全に一致する必要があり、関数はパターン内で一致する必要のある部分を返します。一致が見つからない場合は、空の文字列を返します。

構文

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

ヒント

This example uses the Local Climatological Data(LCD) dataset featured in the StarRocks Basics Quick Start. You can load the data and try the example yourself.

次のデータが与えられた場合:

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: に続く2組の数字を返す

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: に続く2番目の数字のみを返す

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