すべての正規表現関数は、いくつかの例外を除いて、Javaのパターン構文を使用します。
(?m)フラグで有効にする)、行の終端として認識されるのは\\nのみです。また、(?d)フラグはサポートされておらず、使用してはいけません。(?i)フラグで有効にする)は常にUnicodeを考慮して実行されます。ただし、コンテキストに依存したマッチングやローカルに依存したマッチングはサポートされていません。さらに、(?u)フラグはサポートされておらず、使用してはいけません。\\uD800\\uDC00はU+10000として扱われず、\\x{10000}として指定する必要があります。(\\b)は、基本文字を持たない非スペースマークに対して誤って処理されます。\\Qと\\Eは文字クラス([A-Z123]など)ではサポートされておらず、その代わりにリテラルとして扱われます。\\p{prop})は以下の違いがあります:
Old_Italicの代わりにOldItalicを使用します。Is、script=、またはsc=の接頭辞なしで直接指定する必要があります。例:\\p{Hiragana}In接頭辞を付けて指定する必要があります。block=やblk=の接頭辞はサポートされていません。例:\\p{Mongolian}Is、general_category=、またはgc=の接頭辞なしで直接指定する必要があります。例:\\p{L}Isを付けずに直接指定する必要があります。例:\\p{NoncharacterCodePoint}regexp_count(string, pattern) → bigint
文字列内のパターンの出現回数を返します:
SELECT regexp_count('1a 2b 14m', '\\\\s*[a-z]+\\\\s*'); -- 3
regexp_extract_all(string, pattern) → array(varchar)
文字列内の正規表現パターンにマッチした部分文字列を返します:
SELECT regexp_extract_all('1a 2b 14m', '\\\\d+'); -- [1, 2, 14]
regexp_extract_all(string, pattern, group) → array(varchar)
文字列内の正規表現パターンのすべての出現を見つけ、キャプチャグループ番号groupを返します:
SELECT regexp_extract_all('1a 2b 14m', '(\\\\d+)([a-z]+)', 2); -- ['a', 'b', 'm']
regexp_extract(string, pattern) → varchar