パターン変換
「パターン変換」プロセッサは、正規表現を使用して文字列または文字配列属性のデータの書式を変換するかわりとなる、単純でわかりやすい手段を提供します。
「パターン変換」は、2つの列で構成される参照データ・セット(パターン・マップ)を使用して、いくつかのパターン(1つ目のルックアップ列)を新しい1つ以上の書式(2つ目のマップ列)と照合し、データを再書式化します。
たとえば、郵便番号、口座番号、製品シリアル番号の属性など、データが少数の標準形式に従っていることが望まれ、実際はそのようになっていない場合に、「パターン変換」を使用して属性のデータの書式を標準化します。
データに存在する可能性がある無効なパターンを見つけるには、パターン・プロファイラ(同じ文字パターン・マップを使用、つまり、文字パターン生成方法が同じ)を使用すると便利です。これらは、無効な各パターンが有効なパターンにマップされた状態で、このプロセッサで使用されるパターン・マップに追加できます。
「パターン変換」は、ある文字パターンから別のパターンへの単純なマップを使用する範囲内で、可能なかぎり多くの柔軟性を提供することを目指します。テキスト変換のタイプによっては、正規表現の特別な複雑さを必要とするものもあります(「正規表現の置換」を参照)。
プロセッサの完全なロジックは次のとおりです。
手順 | アクション |
---|---|
1 |
値のパターンを生成するために、構成された文字パターン・マップを使用して、入力値のすべての文字をパターン文字にマップします(AB1243-ZXをaaNNNN-aaなど)。 |
2 |
生成されたパターンをパターン・マップのルックアップ列に対して照合します。
|
3 |
パターン文字がルックアップ列にあり、マップ列にない場合は、基礎となる文字が値から削除されます(たとえば、NN-aからNNaへのマップを使用すると、12-Aの値は12Aに変換されます) パターン文字がマップのルックアップ列になく、マップ列にある場合は、そのパターン文字が出力値のリテラル文字として追加されます(たとえば、NNaaからNN-aaへのマップを使用すると、12ABの値は12-ABに変換されます) パターン文字がパターン・マップのルックアップ列とマップ列の両方にある場合は、次のようになります。
|
注意:
同じパターン文字にマップするすべての文字は、最終的なパターンで常に同じ順序で表示される必要があります(たとえば、デフォルトの文字パターン・マップを使用して、AB123CDから123ABCDまたは1ABC23への変換は可能ですが、AB123CDからBA123CDまたはAB213CDへは変換できません)。
次の表に、構成オプションを示します。
構成 | 説明 |
---|---|
入力 |
パターン・マップを使用して値を置換する1つ以上の文字列または文字配列属性を指定します。 配列属性を入力すると、変換はすべての配列要素に適用され、1つの配列属性が出力されます。 |
オプション |
次のオプションを指定します。
|
出力 |
データ属性またはフラグ属性の出力を記述します。 |
データ属性 |
次のデータ属性が出力されます。
|
フラグ |
次のデータ属性が出力されます。
|
次の表に、このプロファイラによって生成される統計情報を示します。
統計 | 説明 |
---|---|
変換済 |
パターン・マップを使用して変換されたレコードの数。 |
未変換 |
パターン・マップを使用して変換されなかったレコードの数。 |
出力フィルタ
「パターン変換」プロセッサからは、次の出力フィルタが使用可能です。
-
変換済の値を持つレコード
-
未変換の値を持つレコード
例
この例では、パターンの生成にデフォルトの文字パターン・マップを使用し、英国の郵便番号に関する共通書式の問題を解決するために、次のパターン・マップを使用します。
ルックアップ | マップ |
---|---|
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 |