メイン コンテンツをスキップする 補完的コンテンツへスキップ

正規表現の一致に基づいて値を返す

IfThenElseファンクションをMatchesファンクションと共に使えば、入力値のパターンに応じた出力値を定義できます。

始める前に

入力ストラクチャーと出力ストラクチャーを持つマップを作成済みであること。次のサンプルを使用できます。

このタスクについて

この例では、連絡先情報が含まれているXMLファイルを使います。属性を使い、stateエレメントとphoneエレメントが特定のパターンにマッチしていることをチェックし、連絡先が有効か無効かを示したいとします。入力には次のXMLサンプルを使います:
<contacts>
	<contact>
		<lastName>Harrison</lastName>
		<firstName>Jane</firstName>
		<street>French Camp Turnpike Road</street>
		<zipCode>30316</zipCode>
		<city>Atlanta</city>
		<state>Georgia</state>
		<phone>(678)123-4567</phone>
	</contact>
	<contact>
		<lastName>Johnson</lastName>
		<firstName>Katherine</firstName>
		<street>Santa Rosa South</street>
		<zipCode>85162</zipCode>
		<city>Phoenix</city>
		<state>AZ</state>
		<phone>(602)789-0123</phone>
	</contact>
	<contact>
		<lastName>Monroe</lastName>
		<firstName>Martin</firstName>
		<street>N Kentwood</street>
		<zipCode>32315</zipCode>
		<city>Tallahassee</city>
		<state>FL</state>
		<phone>(805) 456-7890</phone>
	</contact>
</contacts>
次のXMLサンプルを使えば、出力ストラクチャーを作成できます:
<contacts>
	<contact status="">
		<lastName/>
		<firstName/>
		<street/>
		<zipCode/>
		<city/>
		<state/>
		<phone/>
	</contact>
	<contact status="">
		<lastName/>
		<firstName/>
		<street/>
		<zipCode/>
		<city/>
		<state/>
		<phone/>
	</contact>
</contacts>

手順

  1. 入力contactエレメントを対応する出力にドラッグ&ドロップし、子エレメントをマッピングさせます。
  2. IfThenElseファンクションをstatus属性にドラッグ&ドロップします。
  3. AndファンクションをCondition属性にドラッグ&ドロップした後、2つのMatchesファンクションをAndファンクションにドラッグ&ドロップします。
  4. 入力stateエレメントを最初のMatchesファンクションのInput Value引数にドラッグ&ドロップし、入力phoneエレメントを2番目のファンクションにドラッグ&ドロップします。
  5. stateエレメントに関連付けられているMatchesファンクションをダブルクリックし、[Regex Value] (正規表現の値)フィールドに^[A-Z]{2}$と入力して[Case sensitive] (大文字と小文字を区別)チェックボックスをオンにし、[OK]をクリックします。
    これは、stateエレメントの値が2つの大文字でなければならないことを示しています。
  6. phoneエレメントに関連付けられているMatchesファンクションをダブルクリックし、[Regex Value] (正規表現の値)フィールドに^\(\d{3}\)\d{3}-\d{4}$と入力して[OK]をクリックします。
    これは、phoneエレメントの値が、括弧に入った3桁の数字、3桁、ハイフン、4桁の数字という形式でなけれなばならいことを示しています。
  7. ConstantファンクションをThen引数にドラッグ&ドロップし、[Value] (値)フィールドにvalidと入力して[OK]をクリックします。
  8. ConstantファンクションをElse引数にドラッグ&ドロップし、その値をinvalidに設定して[OK]をクリックします。

タスクの結果

マップが設定されます。contactエレメントのstatus属性は、状態と電話番号の両方が定義済みのパターンにマッチする場合はvalidとなります。一致しない場合、値はinvalidとなります。
[Test Run] (テスト実行)機能を使えば結果を表示できます。この例では次のような出力が返されます。
<contacts>
  <contact status="invalid">
    <lastName>Harrison</lastName>
    <firstName>Jane</firstName>
    <street>French Camp Turnpike Road</street>
    <zipCode>30316</zipCode>
    <city>Atlanta</city>
    <state>Georgia</state>
    <phone>(678)123-4567</phone>
  </contact>
  <contact status="valid">
    <lastName>Johnson</lastName>
    <firstName>Katherine</firstName>
    <street>Santa Rosa South</street>
    <zipCode>85162</zipCode>
    <city>Phoenix</city>
    <state>AZ</state>
    <phone>(602)789-0123</phone>
  </contact>
  <contact status="invalid">
    <lastName>Monroe</lastName>
    <firstName>Martin</firstName>
    <street>N Kentwood</street>
    <zipCode>32315</zipCode>
    <city>Tallahassee</city>
    <state>FL</state>
    <phone>(805) 456-7890</phone>
  </contact>
</contacts>

このページは役に立ちましたか?

このページまたはコンテンツにタイポ、ステップの省略、技術的エラーなどの問題が見つかった場合はお知らせください。