文字列データを加工するには

マッパー関数(文字列/正規表現)

データの中の文字列を取り出したり、連結したりといった、文字列を対象とした処理のために、マッパー関数の「文字列」タブの関数が用意されています。また、「正規表現」タブのマッパー関数を利用することで、正規表現を使った文字列の検索や置換も可能です。

文字列を連結する(Concatenate関数)

1.対象のマッピングウィンドウを表示し、「文字列」タブのConcatenate関数(「文字列を連結」)をマッピング領域までドラッグして配置する

3-36-01.png

2.連結対象の文字列データからConcatenate関数アイコンまでドラッグ、次に出力先までドラッグして接続線をつなぐ

3-36-02.png

3.Concatenate関数アイコンを選択し、「区切り文字」やその他のプロパティを設定する

3-36-03.png

連結の際の区切り文字を、「区切り文字」プロパティに入力して指定できます。上の例では、区切り文字に「-」を使用して「店舗コード」と「商品番号」を連結し、「注文NO」フィールドに出力するよう設定しています。

HINT

メタ文字を使用するには
区切り文字には、「\l」(タブ)や「\r」(CR)、「\n」(LF)のメタ文字、および「\u0040」(@)の形式でUnicodeコードポイントも指定できます。その場合はまず、「区切り文字にメタ文字を使用」プロパティを「はい」に設定してから、「区切り文字」を指定してください。

入力の順序を入れ替えるには
インスペクタの「リンク」の下に表示される「入力」リンクの一覧で値欄をクリックすると、指定した項目一覧が表示されるので、そこから選択することで入力順序を変更できます。

固定の文字列を差し込む(Const関数)

1.対象のマッピングウィンドウを表示し、パレットのConst関数(「文字列定数」)をマッピング領域までドラッグして配置する

3-36-04.png

2.文字列を差し込む箇所に合わせてドラッグし、接続線をつなぐ

3-36-05.png

HINT

関数の説明を入力するには
関数アイコンを選択し、インスペクタの「説明」テキストボックスに内容を入力します。「表示」チェックボックスのチェックマークの有無で、マッピングウィンドウ上での説明の表示/非表示を切り替えできます。なお、Const関数では、「データ」プロパティの値が「説明」に自動設定されます。

3.必要に応じ入力順序を設定し直すなどしてからConst関数アイコンを選択し、「データ」プロパティの値欄に文字列を入力する

3-36-06.png

Const関数では、差し込む文字列を「データ」プロパティに入力します。入力するとその値は、関数の説明に自動的に設定されます。
上の例では、Concatenate関数と組み合わせて、Concatenate関数の3番目の入力として「平成28」を設定しています。固定の文字列を、Const関数を使って直接いずれかのフィールドに出力することも可能です。

HINT

Const関数は、「データ」プロパティに設定した固定値を返すマッパー関数で、入力を持たない関数の1つです。初期設定で関数パレットの「お気に入り」領域に表示されています。

入力の順序をダイアログを使って入れ替えるには
対象の関数アイコンを右クリックし、表示されるメニューから「入力順序の並べ替え」を選択します。項目を選択して、上向きまたは下向きの矢印をクリックすることで入力順序を変更できます。

入力データを文字列に埋め込む(Embed関数)

1.対象のマッピングウィンドウを表示し、「文字列」タブのEmbed関数(「文字列をフォーマット」)をマッピング領域までドラッグして配置する

3-36-07.png

2.設定の文字列に合わせて入出力をそれぞれドラッグし、接続線をつなぐ

3-36-08.png

HINT

「データプロパティの編集」ダイアログ
プロパティの入力欄で、「...」をクリックして表示される「データプロパティの編集」ダイアログを使うと、長いテキスト値などが入力しやすくなります。このダイアログは、関数アイコンをダブルクリックして表示することもできます。ただし、ダイアログを使わずに、「データ」プロパティの入力欄に直接、値を入力しても同じです。

3.Embed関数アイコンを選択し、「データ」プロパティの値欄をクリックして「...」をクリックする

3-36-09.png

4.「データプロパティの編集」ダイアログに、入力データを埋め込むための文字列を指定する

3-36-10.png

この例では、「${name1}の出荷:${input1}個」と入力し、入力フィールド1の名前と値データが埋め込まれた文字列を指定しています。フローを実行すると、出力フィールド2の値として、「商品1の出荷:10個」のように整形されたデータが出力されます。

HINT

Embed関数の「データ」指定
「データ」プロパティには、入力データを埋め込むための文字列を指定します。入力データとして、入力の値(入力フィールドの値など)または入力の名前(フィールド名など)を埋め込むことができます。書式として、入力の値の場合は「${inputN}」(または「$inputN」)、入力の名前の場合は「${nameN}」(または「$nameN」)を用います。{ }の有無に違いはありません。またNの部分には、入力のインデックスを指定します。

前後の空白を取り除く(Trim関数)

1.対象のマッピングウィンドウを表示し、「文字列」タブのTrim関数(「文字列の両端の空白を削除」)をマッピング領域までドラッグして配置する

3-36-11.png

Trim関数は、文字列の両端から空白部分を削除して文字列を返すマッパー関数です。「削除する位置」プロパティで、両端、左端、右端のいずれかを選択できます。

HINT

大文字小文字を変換するには
小文字を大文字に変換するには、「文字列」タブのUpper関数(「小文字を大文字に変換」)を利用します。また、大文字を小文字に変換するには、「文字列」タブのLower関数(「大文字を小文字に変換」)を利用します。Upper関数もLower関数も、「ロケール」プロパティで対象の言語を指定できます。

文字列の半角や全角を統一するには
マッパー関数の「文字列」タブには、文字列の半角と全角を互いに変換できる関数も用意されています。半角文字列を全角文字列に変換するにはJis関数、全角文字列を半角文字列に変換するにはAsc関数を、それぞれ利用します。

「文字列」タブのマッパー関数
マッパーの「文字列」の分類では、以下の関数を利用できます。

•Const(文字列定数) 
•Concatenate(文字列を連結) 
•InsertString(文字列を挿入) 
•DeleteString(文字列の一部を削除) 
•Left(左端から指定した文字数を取り出す) 
•Mid(指定位置から指定文字数分の文字列を取得) 
•Right(右端から指定した文字数を取り出す) 
•StringReplace(置換テーブルを使って複数文字列を置換) 
•ExtractString(文字列を検索して、その位置からの部分文字列を取得) 
•Truncate(指定位置から左右どちらかの部分文字列を取得)
•Trim(文字列の両端の空白を削除) 
•Len(文字数を取得) 
•Repeat(文字列を指定回数繰り返し) 
•Embed(文字列をフォーマット) 
•Upper(小文字を大文字に変換) 
•Lower(大文字を小文字に変換) 
•Jis(半角文字列を全角文字列に変換) 
•Asc(全角文字列を半角文字列に変換) 
•Filename(ファイルパスからフォルダ名またはファイル名を取得) 
•UUID(UUID を生成) 
•Split(文字列を分割します) 
•StrCompare(文字列比較)

正規表現を利用して文字列内の空白を取り除く

1.対象のマッピングウィンドウを表示し、「正規表現」タブのRegexpReplace関数(「正規表現で検索し、マッチした文字列を指定文字列に置換」)を配置する

3-36-12.png

2.処理に合わせて続線をつなぎ、関数アイコンを選択して各プロパティを設定する

3-36-13.png

対象の処理に合わせて、正規表現の文字列や処理の方法を指定します。この例では、空白文字を表すメタ文字の「\s」を使用して、「入力文字列(商品名)内の空白文字がある場合にそれを削除する」処理を設定しています。

HINT

正規表現とは、文字列の集合をパターン化して表す方法で、正規表現を利用すると、文字列をより概念的な方法で捉えて検索や置換を実行できるようになります。

3-36-14.png

「正規表現の編集」ダイアログ
配置した正規表現の関数アイコンをダブルクリックすると、「正規表現の編集」ダイアログが表示され、各種プロパティの設定とテストを実施できます。正規表現と入力文字列を入力し、「テスト」をクリックすると、「実行結果」に結果の文字列が表示されます。

「正規表現」タブのマッパー関数
マッパー関数の「正規表現」タブには、文字列データを正規表現で処理するための関数が集められています。以下の関数を利用できます。

関数処理内容
RegexpMatch(正規表現にマッチするかどうかを判断)正規表現として指定した文字列にマッチするかどうかを評価し、結果をBoolean型の真偽値(true/false)で返す
RegexpFind(正規表現で検索し、マッチした文字列の出現位置インデックスを取得)入力値が正規表現にマッチしている場合のインデックス(出現位置)を返す
Regexp(正規表現で検索し、マッチする文字列を取得)正規表現で文字列を検索し、マッチした文字列を返す
RegexpReplace(正規表現で検索し、マッチした文字列を指定文字列に置換)正規表現で検索を行い、マッチした文字列を指定した文字列で置換する

 

この記事は役に立ちましたか?
4人中4人がこの記事が役に立ったと言っています

他のキーワードで検索する