sql >> データベース >  >> RDS >> PostgreSQL

selectのPostgreSQL正規表現キャプチャグループ

    式から生じた正規表現の一致をキャプチャしようとしている場合は、substring トリックを行うだろう:

    select substring ('I have a dog', 'd[aeiou]g')
    

    一致するもの、この場合は「犬」を返します。

    上で試したことの欠落しているリンクは、キャプチャしたい式を括弧で囲む必要があるということだと思います。 regexp_matches この場合は機能しますが(キャプチャする式の前後に括弧を含めた場合)、一致するたびにテキストの配列が返されます。 1つ一致する場合は、substring ちょっと便利です。

    したがって、stuffを返そうとしている場合は、例に戻ります。 列の先頭にある場合のみ:

    select substring (column, '^(stuff)')
    

    または

    select (regexp_matches (column, '^(stuff)'))[1]
    


    1. オラクル。マージサブクエリとメインクエリ条件の防止

    2. mysqlで正確な文字列を検索する方法

    3. Psycopg2:ストアドプロシージャPostgresでテーブルを作成します

    4. MySQLの数と日ごとのグループ化