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

Postgresqlregexp_matches構文が期待どおりに機能しない

    regexp_matches(string text, pattern text [, flags text]) 関数はキャプチャされた値を返します:

    非キャプチャグループを使用して式を修正できます:

    SELECT unnest(regexp_matches('4-0001-1234 4.0001.12344  4-0-0-0-1-1234', '4(?:[\s/.-]*0){3}(?:[\s/.-]*[12])(?:[\s/.-]*\d){4}', 'g'));
    

    オンラインデモ をご覧ください。 。

    ところで、-をエスケープする必要はありません 角かっこ式の開始/終了にあり、/もエスケープする必要がない場合 .も そこの。 {1}も削除することをお勧めします aとして =a{1} 限定数量詞をサポートする正規表現で。




    1. SQL ServerでのISNUMERIC()のしくみ

    2. MySQLは一意の制約を追加します

    3. postgresのテーブルに対するクエリ許可

    4. Oracleでトリガーを使用してテーブルへの変更をログに記録する