Cloudflare Pipelines のスカラー関数実装は Apache DataFusion ↗(Arroyo ↗ 経由)を基にしており、このドキュメントは DataFusion の関数リファレンスから派生しています。
Cloudflare Pipelines は PCRE に近い ↗ 正規表現 構文 ↗ を使います(先読み・後読みや後方参照など、いくつかの機能は除きます)。
文字列に 正規表現 ↗ が 1 回以上一致すれば true、 そうでなければ false を返します。
regexp_like(str, regexp[, flags])引数
- str: 対象の文字列式です。 定数、列、関数、および文字列演算子の組み合わせを使えます。
- regexp: 文字列式に対してテストする正規表現です。 定数、列、関数を指定できます。
- flags: 正規表現の動作を制御する、任意の正規表現フラグです。
次のフラグをサポートします。
- i: 大文字と小文字を区別しません。文字は大文字と小文字の両方に一致します
- m: 複数行モードです。
^と$が行の先頭と末尾に一致します - s:
.が\nに一致できるようにします - R: CRLF モードを有効にします。複数行モードが有効なとき、
\r\nを使います - U:
x*とx*?の意味を入れ替えます
例
select regexp_like('Köln', '[a-zA-Z]ö[a-zA-Z]{2}');
+--------------------------------------------------------+
| regexp_like(Utf8("Köln"),Utf8("[a-zA-Z]ö[a-zA-Z]{2}")) |
+--------------------------------------------------------+
| true |
+--------------------------------------------------------+
SELECT regexp_like('aBc', '(b|d)', 'i');
+--------------------------------------------------+
| regexp_like(Utf8("aBc"),Utf8("(b|d)"),Utf8("i")) |
+--------------------------------------------------+
| true |
+--------------------------------------------------+追加の例は こちら ↗ にあります。
文字列内の 正規表現 ↗ の一致結果のリストを返します。
regexp_match(str, regexp[, flags])引数
- str: 対象の文字列式です。 定数、列、関数、および文字列演算子の組み合わせを使えます。
- regexp: 照合する正規表現です。 定数、列、関数を指定できます。
- flags: 正規表現の動作を制御する、任意の正規表現フラグです。
次のフラグをサポートします。
- i: 大文字と小文字を区別しません。文字は大文字と小文字の両方に一致します
- m: 複数行モードです。
^と$が行の先頭と末尾に一致します - s:
.が\nに一致できるようにします - R: CRLF モードを有効にします。複数行モードが有効なとき、
\r\nを使います - U:
x*とx*?の意味を入れ替えます
例
select regexp_match('Köln', '[a-zA-Z]ö[a-zA-Z]{2}');
+---------------------------------------------------------+
| regexp_match(Utf8("Köln"),Utf8("[a-zA-Z]ö[a-zA-Z]{2}")) |
+---------------------------------------------------------+
| [Köln] |
+---------------------------------------------------------+
SELECT regexp_match('aBc', '(b|d)', 'i');
+---------------------------------------------------+
| regexp_match(Utf8("aBc"),Utf8("(b|d)"),Utf8("i")) |
+---------------------------------------------------+
| [B] |
+---------------------------------------------------+追加の例は こちら ↗ にあります。
正規表現 ↗ に一致する部分文字列を置き換えます。
regexp_replace(str, regexp, replacement[, flags])引数
- str: 対象の文字列式です。 定数、列、関数、および文字列演算子の組み合わせを使えます。
- regexp: 照合する正規表現です。 定数、列、関数を指定できます。
- replacement: 置き換え用の文字列式です。 定数、列、関数、および文字列演算子の組み合わせを使えます。
- flags: 正規表現の動作を制御する、任意の正規表現フラグです。
次のフラグをサポートします。
- g: (グローバル)全体を検索し、最初の一致で終わりません
- i: 大文字と小文字を区別しません。文字は大文字と小文字の両方に一致します
- m: 複数行モードです。
^と$が行の先頭と末尾に一致します - s:
.が\nに一致できるようにします - R: CRLF モードを有効にします。複数行モードが有効なとき、
\r\nを使います - U:
x*とx*?の意味を入れ替えます
例
SELECT regexp_replace('foobarbaz', 'b(..)', 'X\\1Y', 'g');
+------------------------------------------------------------------------+
| regexp_replace(Utf8("foobarbaz"),Utf8("b(..)"),Utf8("X\1Y"),Utf8("g")) |
+------------------------------------------------------------------------+
| fooXarYXazY |
+------------------------------------------------------------------------+
SELECT regexp_replace('aBc', '(b|d)', 'Ab\\1a', 'i');
+-------------------------------------------------------------------+
| regexp_replace(Utf8("aBc"),Utf8("(b|d)"),Utf8("Ab\1a"),Utf8("i")) |
+-------------------------------------------------------------------+
| aAbBac |
+-------------------------------------------------------------------+追加の例は こちら ↗ にあります。
origstr 内での substr の位置を返します(1 から数えます)。origstr に substr が
現れない場合は 0 を返します。
position(substr in origstr)引数
- substr: パターン文字列です。
- origstr: 対象の文字列です。