Job Runner

正規表現を用いてフィールドの値を置換する

概要

フィールドの値で正規表現にマッチする部分を別の文字列に置換します。

使い方

この「やること」をセットしたアクションを実行してフィールド値が元の値から変更される場合、レコードの保存が予約されます。変更されたレコードはすぐには保存されず、ジョブ内の全アクションが終了した後に自動的に保存されます。変更されたレコードを別のタイミングで保存したい場合は「値が変更されているレコードを保存する」を使用します。

自動保存時に「レコード」のアプリに対してレコード編集権限を持った API トークンが必要になります。別のアクションで「kintone 接続設定を行う」を行い、kintone アプリの API トークンを設定しておいてください。

設定するパラメーター

「レコード」「フィールド」「正規表現」「置換文字列」「複数ヒットした場合」を設定します。

レコード

処理対象となるレコードを取得したアクションを選択します。

複数行のレコードが含まれる場合、それぞれのレコードに対して処理されます。レコードが1行もない場合は何も行われません。

フィールド

置換を行いたいフィールドを選択します。複数選択することが可能で、選択したフィールド全てを同時に置換します。

選択可能なフィールドタイプは以下の通りです。

  • 文字列(1行)
  • 文字列(複数行)
  • リッチエディター
  • リンク

テーブル内のフィールドは選択できません。

正規表現

正規表現を入力します。

(\d+)-(\d+)-(\d+)

置換文字列

ヒットした部分を置きかえる文字列を入力します。

このパラメーターを空にすると、置換によって「置換前文字列」を削除するという意味になります。

\1 \2 … などで、正規表現中のカッコ () で捕捉された部分マッチ文字列に置き換えることができます。kintone アプリカスタマイズ版の「正 規表現を用いてフィールドの値を置換する」の場合は $1 $2 … などですが、Job Runner 版の場合は \1 \2 … となり、書き方が異なりますので注意してください。

例:正規表現中のカッコで一致した部分に置換する。(式ではないので「=」ではじめません。)

\1年\2月\3日

例:他のアクションの結果に置換する。(Customine の式を使用する場合、「=」ではじめます。)

=$1

複数ヒットした場合

「置換前文字列」フィールド値の中に複数あった場合の動作を、「すべて置換」「最初の1つだけ置換」の中から選びます。

「すべて置換」を選ぶと、見つかった「置換前文字列」をすべて置換します。

「最初の1つだけ置換」を選んだ場合、見つかったもののうち最初のもの(文章として手前のもの)だけを置換します。

旧バージョンとの動作の違いについて

Customine のバージョン1.161(2022年2月10日リリース)で動作に変更があります。互換性を維持するため、1.160(2022年1月27日リリース)以前のものは「正規表現を用いてフィールドの値を置換する(旧)」という名前で引き続き使用できます。新旧のバージョンでの動作の違いは以下の通りです。

  • 正規表現のメタ文字 ^ $ の扱いが異なります。
    • 1.160以前(旧) … ^ は文頭、$ は文末のみにマッチし、行頭行末にマッチしません。
    • 1.161以降 … ^ は文頭に加え行頭、$ は文末に加え行末にもマッチします。(マルチラインモード)

注意事項

  • 正規表現のマッチング、置換処理は Python 標準の re.sub を使用します。使用可能な特殊文字など正規表現の細かい動作は、Python の仕様に依存します。