パターン変換

「パターン変換」プロセッサは、正規表現を使用して文字列または文字配列属性のデータの書式を変換するかわりとなる、単純でわかりやすい手段を提供します。

「パターン変換」は、2つの列で構成される参照データ・セット(パターン・マップ)を使用して、いくつかのパターン(1つ目のルックアップ列)を新しい1つ以上の書式(2つ目のマップ列)と照合し、データを再書式化します。

たとえば、郵便番号、口座番号、製品シリアル番号の属性など、データが少数の標準形式に従っていることが望まれ、実際はそのようになっていない場合に、「パターン変換」を使用して属性のデータの書式を標準化します。

データに存在する可能性がある無効なパターンを見つけるには、パターン・プロファイラ(同じ文字パターン・マップを使用、つまり、文字パターン生成方法が同じ)を使用すると便利です。これらは、無効な各パターンが有効なパターンにマップされた状態で、このプロセッサで使用されるパターン・マップに追加できます。

「パターン変換」は、ある文字パターンから別のパターンへの単純なマップを使用する範囲内で、可能なかぎり多くの柔軟性を提供することを目指します。テキスト変換のタイプによっては、正規表現の特別な複雑さを必要とするものもあります(「正規表現の置換」を参照)。

プロセッサの完全なロジックは次のとおりです。

手順 アクション

1

値のパターンを生成するために、構成された文字パターン・マップを使用して、入力値のすべての文字をパターン文字にマップします(AB1243-ZXをaaNNNN-aaなど)。

2

生成されたパターンをパターン・マップのルックアップ列に対して照合します。

  • 一致がない場合は、データを変換せずに出力属性に対して元の値を出力します(終了)

  • 一致(完全一致のみ)がある場合は、ステップ3に移動します。

3

パターン文字がルックアップ列にあり、マップ列にない場合は、基礎となる文字が値から削除されます(たとえば、NN-aからNNaへのマップを使用すると、12-Aの値は12Aに変換されます)

パターン文字がマップのルックアップ列になく、マップ列にある場合は、そのパターン文字が出力値のリテラル文字として追加されます(たとえば、NNaaからNN-aaへのマップを使用すると、12ABの値は12-ABに変換されます)

パターン文字がパターン・マップのルックアップ列とマップ列の両方にある場合は、次のようになります。

  • 左から右に順に操作し、基礎となる各文字を同じパターン文字で出力値にマップします(たとえば、NaaNからNNaaへのマップを使用すると、1AB2の値は12ABに変換されます)。

  • ルックアップ列の方がマップ列よりも同じタイプの文字数が多い場合は、基礎となる最も右側の文字が値から削除されます(たとえば、NaaNからNaaへのマップを使用すると、1AB2の値は1ABに変換されます)。

  • マップ列にある文字がルックアップ列にない場合は、値にリテラル文字として追加されます(たとえば、NNaaからEDB-NNaaへのマップを使用すると、12ABの値はEDB-12ABに変換されます)。

  • マップ列の方がルックアップ列よりも同じタイプの文字数が多い場合は、マップ列で最も右側の文字が出力値のリテラル文字として機能します(たとえば、NNaaからNNaaNへのマップを使用すると、12ABの値は12ABNに変換されます)。

  • マップ列に一重引用符で囲まれた文字がある場合、これらはリテラル文字として変換された値に追加されます(たとえば、NNNaからEDN-NNNaへのマップを使用すると、123Nの値はEDN-123Nに変換されます)。

注意:

同じパターン文字にマップするすべての文字は、最終的なパターンで常に同じ順序で表示される必要があります(たとえば、デフォルトの文字パターン・マップを使用して、AB123CDから123ABCDまたは1ABC23への変換は可能ですが、AB123CDからBA123CDまたはAB213CDへは変換できません)。

次の表に、構成オプションを示します。

構成 説明

入力

パターン・マップを使用して値を置換する1つ以上の文字列または文字配列属性を指定します。

配列属性を入力すると、変換はすべての配列要素に適用され、1つの配列属性が出力されます。

オプション

次のオプションを指定します。

  • 文字パターン・マップ: パターン・リストと照合するパターンを生成するために、文字をパターン化する入力値のマップ先の文字。デフォルト値: *文字パターン・マップ

  • パターン・マップ: データの変換に使用する文字パターンのマップ。参照データ(パターン生成カテゴリ)として指定します。デフォルト値: None

出力

データ属性またはフラグ属性の出力を記述します。

データ属性

次のデータ属性が出力されます。

  • [Attribute Name].PatternTransformed: パターン・マップに従って値が置換された新しい属性。値は、元の属性値をパターン・マップに従って変換して導出されます。

フラグ

次のデータ属性が出力されます。

  • [Attribute Name].PatternTransformedFlag: 各レコードに対するPatternTransform操作の結果(つまり、データが変換されたかどうか)を格納します。可能な値は、Y (変換済)またはN (未変換)です。

次の表に、このプロファイラによって生成される統計情報を示します。

統計 説明

変換済

パターン・マップを使用して変換されたレコードの数。

未変換

パターン・マップを使用して変換されなかったレコードの数。

出力フィルタ

「パターン変換」プロセッサからは、次の出力フィルタが使用可能です。

  • 変換済の値を持つレコード

  • 未変換の値を持つレコード

この例では、パターンの生成にデフォルトの文字パターン・マップを使用し、英国の郵便番号に関する共通書式の問題を解決するために、次のパターン・マップを使用します。

ルックアップ マップ

aaN-_Naa

aaN Naa

aaN._Naa

aaN Naa

aaNN._Naa

aaNN Naa

aaNNaa

aaN Naa

aaN__Naa

aaN Naa

これにより、次に示すように値が変換されます。

Postcode Postcode.PatternTransformed

OL6 9HX

OL6 9HX

CW96HF

CW9 6HF

PR7 3RB

PR7 3RB

CH7 6DZ

CH7 6DZ

CH7 6BD

CH7 6BD

CH40BE

CH4 0BE

SK87NG

SK8 7NG