0

次のような入力が与えられた場合、「ABCD1234」という形式のテキストと一致するかどうかを確認する必要があります。

  • ABCD1### は、ABCD1943、ABCD1300 と一致しますが、ABCD2042 または FOOB3075 とは一致しません
  • DCBA[98]### は DCBA9012、DCBA8899 に一致しますが、DCBA6211 には一致しません
  • ####1### は、ABCD1848 および BARR1093 に一致します。
  • (ABCD|FOOB|BARR)2### は、ABCD2999、FOOB2533、BARR2222 に一致します
  • ABCD1234、WXYZ9876 は ABCD1234、WXYZ9876 のみに一致します
  • DCBA9###,DCBA8### は、上記の DCBA[98]### と同じものに一致します。

これは、次の構造を持つ関数のように書いています。

create or replace function modifiedRegEx(pattern text, tester text) 
RETURNS boolean
AS $re$
DECLARE
    isMatch boolean;
BEGIN
    isMatch := TRUE;
    return isMatch;
END;
$re$ LANGUAGE 'plpgsql';

明らかに、上記はTRUE毎回返されます。上記をチェックするのに役立つかもしれないいくつかの文字列関数を誰かが提案してもらえないだろうかと思っていましたか? PostgreSQL 文字列関数のドキュメントを読んだ後でも、途方に暮れています。

ありがとうございました。

4

1 に答える 1