Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

正規表現関数

最終更新 Markdown で表示Agent セットアップ

Cloudflare Pipelines のスカラー関数実装は Apache DataFusionArroyo 経由)を基にしており、このドキュメントは DataFusion の関数リファレンスから派生しています。

Cloudflare Pipelines は PCRE に近い 正規表現 構文 を使います(先読み・後読みや後方参照など、いくつかの機能は除きます)。

regexp_like

文字列に 正規表現 が 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

文字列内の 正規表現 の一致結果のリストを返します。

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

正規表現 に一致する部分文字列を置き換えます。

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                                                            |
+-------------------------------------------------------------------+

追加の例は こちら にあります。

position

origstr 内での substr の位置を返します(1 から数えます)。origstrsubstr が 現れない場合は 0 を返します。

position(substr in origstr)

引数

  • substr: パターン文字列です。
  • origstr: 対象の文字列です。

役に立ちましたか?