regexp_capture(string, pattern [,start_position])

正規表現を使用してキャプチャーされる個々のストリングを返します。 キャプチャーは、小括弧で囲まれている正規表現のあらゆる部分です。 オプションの3番目の引数が与えられた場合、'regexp_capture指定された'start_positionまでスキップしてからパターンにマッチしようとする。

キャプチャーには、サブキャプチャー (ネストされた小括弧) を含めることができ、一致したストリングの部分が複数回返される結果となります。 以下の 3 番目の例では、c1 変数に値「123def」が割り当てられ、c1sub 変数に値「123」が割り当てられます。

もし'regexp_captureがパターン全体にマッチできなければ、すべてのキャプチャに対してnullを返す。

(.*) などのキャプチャーでまったく一致が見られない場合、キャプチャーは、長さゼロのストリング '' として返されます。

([a-z]){0,4} または (ABC)* などのキャプチャーで一致の回数が 0 回の場合、キャプチャーは、長さゼロのストリング '' の代わりに、一致した値がなかったことを示すためにブール値 false として返されます。

正規表現パターンが入力ストリングと一致しない場合、値 NULL が返されます。

foo, bar = regexp_capture( "foobar", "(f..)(b..)" )
c1, c2, c3 = regexp_capture( "foo;bar;baz", "^(.*);(.*);(.*)$")
c1, c1sub = regexp_capture("abc123def", "(([0-9]+).*)" )