2.4 データのパターンをリダクションする正規表現
正規表現によって、パターン検索に基づいて列データの値内にある特定のデータをリダクションします。正規表現を使用して、長さが異なる文字列の列をリダクションできます。
たとえば、ドメインのみが表示されるように電子メール・アドレスのユーザー名をリダクションできます(電子メール・アドレスhpreston@example.com
のhpreston
を[redacted]
に置き換えて、[redacted]@example.com
と表示するなど)。リダクションを実行するには、DBMS_REDACT.ADD_POLICY
またはDBMS_REDACT.ALTER_POLICY
プロシージャのfunction_type
パラメータをDBMS_REDACT.REGEXP
またはDBMS_REDACT.REGEXP_WIDTH
のいずれかに設定し、さらに次のパラメータを使用して、正規表現を作成します:
-
文字列検索パターン(つまり、検索対象の値)で、例は次のとおりです。
regexp_pattern => '(.+)@(.+\.[A-Za-z]{2,4})'
この設定では、次の形式のパターンが検索されます。
one_or_more_characters@one_or_more_characters.2-4_characters_in_range_A-Z_or_a-z
-
regexp_pattern
設定で一致した値を置換する置換文字列です。置換文字列は、主要な正規表現パターンの副次式に後方参照を含めることができます。次の例では、(regexp_pattern
設定の)@
記号の前にあるデータをテキスト[redacted]
に置き換えます。\2
設定は、2番目の一致グループであるregexp_pattern
設定の(.+\.[A-Za-z]{2,4})
を示します。regexp_replace_string => '[redacted]@\2'
-
データの最初の文字などの文字列検索の文字の開始位置で、例は次のとおりです。
regexp_position => DBMS_REDACT.RE_BEGINNING
この値は、指定しない場合のデフォルトです。
-
実行する検索および置換操作の種類(最初の出現、5回おきの出現、すべて出現)で、例は次のとおりです。
regexp_occurrence => DBMS_REDACT.RE_ALL
この値は、指定しない場合のデフォルトです。
-
検索および置換操作のデフォルトの一致動作で、検索で大/小文字を区別するかどうかの例は次のとおりです(
i
はこれを大/小文字の区別なしに設定します)。regexp_match_parameter => 'i'
デフォルトのパラメータに加え、電話番号、電子メール・アドレスおよびクレジット・カード番号に、よく使用される正規表現を使用できるように事前定義された形式のセットを使用できます。