フィールド正規化ルールの正規表現およびパターン

  • リリースバージョン: Zurich
  • 更新日 2025年07月31日
  • 所要時間:2分
  • フィールド変換定義は、正規表現 (プラットフォームでは regex と呼ばれます) の使用と、文字列内の文字の位置を決定するためのパターン一致をサポートしています。

    ターゲット文字を識別した後、フィールド変換で、識別された文字を置換または削除したり、その位置に他の文字を挿入したりできます。

    正規表現

    正規表現を変換パラメーターと条件ステートメントで使用して、フィールド値のどの文字を変換するかを決定できます。

    変換されるフィールド値内の文字を検索するパラメーターとして使用される正規表現は、 /regex/ で始まる必要があります。その後のものはすべて、文字の位置を計算するために使用される正規表現です。

    組織の Windows ネットワーク内のコンピュータ名は、development\devlab01 のように、「ドメイン\マシン名」として表されています。ネットワークアドミニストレーターは、ドメイン名とバックスラッシュを削除することで、これらの名前を単純にしたいと考えています。彼は、コンピュータ [cmdb_ci_computer] テーブルの変換レコードを作成し、変換する [名前] フィールドを選択します。
    図 : 1. 変換正規表現の例
    ネットワークには複数のドメインが含まれており、各ドメインには多数のコンピュータが含まれています。各名前に共通する文字はバックスラッシュだけです。ドメイン名を削除するために、アドミニストレーターは、正規表現を使用してフィールドの生の値全体を、バックスラッシュの後に表示される文字 (実際のマシン名) に置き換えることにしました。変換タイプとして [置換] を使用して新しい変換を作成し、次の値を入力します。
    • 検索:/regex/.*\\(.*)
    • 置換:$1
    図 : 2. 変換正規表現の例

    正規表現 .*\\(.*) は、[名前] フィールドの生の値全体を表します。この例では、development\devlab01を表します。式の最初の部分である .* は、バックスラッシュの前のすべてのもの (development ドメイン名) を表します。バックスラッシュ自体は正規表現のエスケープ文字であり、コンピュータ名でその機能を保持するには特別な構文が必要です。アドミニストレーターは、別のバックスラッシュを使用してエスケープする必要があります (\\ は \ を意味します)。バックスラッシュの後の式の部分 (.*) は、コンピュータ名 (devlab01) を表し、参照用に括弧内にグループ化されています。[置換] フィールドの値 $1 は、このグループを参照し、フィールドの生の値全体をグループ devlab01 のコンテンツに置き換えます。

    アドミニストレーターは、変換レコードの [変換をテスト] をクリックし、[生データ] フィールドに「development\devlab01」と入力します。次に、[OK] をクリックして変換をテスト値に適用します。この変換により、development\devlab01devlab01 に置き換えられます。
    図 : 3. 変換正規表現 3

    このフィールドの変換が正常にテストされると、アドミニストレーターは変換レコードの [モード][アクティブ] に変更し、変換アプリケーションデータジョブを実行して、データベース内の既存のレコードにこの変換を適用します。