やること「正規表現を用いてフィールドの値を置換する」をご利用ください。

正規表現を使い、フィールドの値の一部を抜き出す、書き換えるなどができます。


正規表現を用いた文字列の一部の抜き出し:

やること「正規表現を用いてフィールドの値を置換する」は、正規表現を使用してフィールドの値を「2019-5-1」から「2019年5月1日」に置き換えたい場合などに利用します。

また、この置換機能はフィールドの値(文字列)の一部を抜き出したい場合にも使用できます。

下記のように「注文コード」フィールドの3文字目から10文字目を抜き出したい場合を例にとります。



※ボタンをスペースに配置するアクションの説明は省略しています。

※kintoneアプリ側でフィールド名とフィールドコードは同じものに設定しています。



やること

正規表現を用いてフィールドの値を置換する」を選択します。

フィールドは「注文コード」フィールドを指定します。

正規表現には「(.{2})(.{8})(.*)」、置換文字列には「$2」を指定しました。

複数ヒットした場合は「最初の1つだけ置換」を選択しました。


正規表現と置換文字列は下記のような意図で設定しています。

 .{2}:任意の2文字

 .{8}:任意の8文字

 .*:任意の文字の0回以上の繰り返し


また、「(.{2})」のように()で囲むことで文字のパターンをグループ化できます。

置換文字列内で左から$1、$2のような、「$番号」の表記で識別します。


※正規表現はあくまで一例です。ご利用目的に合った表現をご利用ください。



Customineからkintoneアプリへ登録を行い、kintoneアプリを実行してみます。

「注文コード」フィールドに「CH20190105001」と入力し、スペースに表示しておいた「一部抜き出し」ボタンをクリックします。



「注文コード」フィールドの値が、元々入力されていた「CH20190105001」の3文字目~10文字目を抜き出した値に置換されました。



このように、「正規表現を用いてフィールドの値を置換する」は、文字の抜き出しにも利用できます。

ただ、抜き出し元の値がセットされているフィールドの値が置換されるため、変換元のフィールドの値を変更せずに残しておきたい場合は、下記の手順でご利用ください。


 抜き出し元の値がセットされたフィールド:A

 抜き出した値をセットしたいフィールド:B

  1. フィールドAの値をフィールドBにコピー

  2. フィールドBに対して値を置換



[参考]文字列フィールドの頭2文字を取得するカスタマイズ例:


下記は、科目コードフィールドの値が「GS001」の時、頭2文字の「GS」を取得し、科目集約コードフィールドにセットする例です。



科目コードの頭2文字が科目をグループ化する科目集約コード「GS」を表しており、科目コードの登録時にルックアップで科目集約コードを確認できるようにしています。


科目コードを入力し、科目コードフィールドからカーソルを移動します。



科目集約コードフィールド(ルックアップフィールド)に、科目コードフィールドの値の頭2文字”GS”がコピーされ、ルックアップが取得されます。



kintone側で、科目アプリと科目集約アプリを作成します。

フィールド名とフィールドコードは同じに設定しています。


科目アプリ:

科目集約コードフィールドはルックアップフィールド、他のフィールドはすべて文字列(1行)フィールドです。

科目集約コード_workは、科目コードから科目集約コードを取り出す際に使う、データの仮置き場です。

もし、科目集約コードフィールドがルックアップフィールドではなく文字列(1行)フィールドなどであれば、仮置き場のフィールドは必要ありません。



科目集約コードフィールドは、下記のように設定しました。



科目集約アプリ:

文字列(1行)フィールドで、科目集約コードと科目集約名を配置しました。



あらかじめ、レコードを登録しておきます。


Customineで科目アプリのカスタマイズを作成します。


今回のアプリの場合、科目集約コードフィールドと科目集約コード_workは利用者に直接編集されたくないので、2つとも無効(編集不可)に設定します。


フィールドの無効化



やること

フィールドを無効化する」を指定します。

フィールドには、無効化したい「科目集約コード」「科目集約コード_work」を指定します。


条件

フィールドの値を編集可能な画面で無効化したいので、「追加画面・編集画面を表示した時」を指定します。



次に、やること「正規表現を用いてフィールドの値を置換する」を使用する準備を行います。

今回のアプリでは、「科目コード」フィールドからコピーした「科目集約コード」フィールドの値を頭2文字だけ残して置換したいのですが、「科目集約コード」フィールドはルックアップフィールドなので、やること「正規表現を用いてフィールドの値を置換する」の対象にできません。

そのため、一旦値を「科目集約コード_work」フィールドにコピーし、置換してから「科目集約コード」フィールドにセットします。


「科目コード」フィールドの値を「科目集約コード_work」フィールドにコピー



やること

フィールドに値をセットする」を選択します。

フィールドにはコピー先の「科目集約コード_work」、値にはコピー元の「科目コード」フィールドを指定します。


条件

「科目コード」フィールドの値が変わったときに処理を行いたいので「フィールドの値を編集して値が変わった時」を指定します。

フィールドは「科目コード」を指定しました。

一覧画面の鉛筆を押した時は「一覧画面の鉛筆を押した時は含めない」を指定します。



次に、正規表現を使って「科目集約コード_work」フィールドの値を頭2文字のみを残した値に置換します。

やること「正規表現を用いてフィールドの値を置換する」を使用して、下記のような方法で頭2文字を取り出します。



フィールドの値の頭2文字のみを取得し置換する


やること

正規表現を用いてフィールドの値を置換する」を指定します。

フィールドには値を置換したい「科目集約コード_work」を指定しました。

正規表現には「(.{2})(.*)」、置換文字列には「$1」を指定します。

詳しくはドキュメント「正規表現を用いてフィールドの値を置換する」をご参照ください。

複数ヒットした場合、については「最初の1つだけ置換」を選択しています。


条件

「科目集約コード_work」に値がセットされてから処理を行いたいので「他のアクションの実行が完了した時」を指定します。

アクションは、値をセットするアクションのアクションNo「2」を指定しました。


加工後の頭2文字を科目集約コードフィールドにセットする



やること

フィールドに値をセットする」を指定します。

フィールドは「科目集約コード」、値は「科目集約コード_work」フィールドです。


条件

「科目集約コード_work」値が頭2文字に変換されてから処理を行いたいので「他のアクションの実行が完了した時」を指定します。

アクションは、値を頭2文字に変換するアクションのアクションNo「3」を指定しました。



科目集約コードフィールドにセットされた頭2文字をキーにルックアップを再取得する



やること

「科目集約コード」フィールドにセットされた、「科目コード」フィールドの頭2文字をキーにルックアップを取得したいので「ルックアップを取得しなおす」を選択します。

ルックアップフィールドは「科目集約コード」です。


条件

「科目集約コード」フィールドに値がセットされてから処理を行いたいので「他のアクションの実行が完了した時」を指定します。

アクションは、値をセットするアクションのアクションNo「4」を指定しました。



以上で、カスタマイズは完了です。

kintoneアプリへ登録を行い、実行結果を確認してください。


この例のように、正規表現を使用することで、フィールドに入力された文字列から一部を取得する、置換するなどの処理が可能となります。