すべての正規表現関数は、いくつかの例外を除いて、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